-
1、var obj={x:1,y:2} obj.x //1 obj["y"] //2 这俩种方法都可以取到obj里面的值 2、var obj={x1:1,x2:2}; var i=1,n=2; for(i<=n;i++){ console.log(obj["x"+i]) } 适合于遍历取值 3、var p; for(p in obj){ console.log(obj[p]) } 用for in遍历,有可能把原型链中的值遍历出来,而且顺序也可能不一样 4、属性查找 in 不仅查找对象,也查找原型链上是否有 hasOwnProperty 只查找对象上是否有 propertyIsEnumerable 是否可以枚举查看全部
-
截个图查看全部
-
对象中的get/set方法中的this也指的是当前对象。查看全部
-
第3种创建对象方式,Object.create: var obj = Object.create({x:1}); Object.create()是一个系统内置的函数,其参数通常为一个对象,该方法返回一个新创建的obj对象,并且该obj对象的原型指向这个参数对象,而参数对象原型指向Object.prototype。 例子如下:var obj = Object.create({x : 1}); obj.x // 1 typeof obj.toString // "function" obj.hasOwnProperty('x');// false 并不是所有的对象都有.toString()方法,因为不是所有的对象的原型链上都有Object.prototype属性 例子如下: var obj = Object.create(null); obj.toString // undefined查看全部
-
对象赋值,不会向原型链上查找 obj.z = 5; 先在对象本身上是否有z属性,有直接修改,没有在对象上添加z=5; 备注:通过原型链继承,可以继承原型上的属性,又不会修改原型上的属性 与4-4 get/set方法相关 比较查看全部
-
第2种创建对象方式,new/原型链: function foo(){} foo.prototype.z = 3; var obj =new foo(); obj.y = 2; obj.x = 1; obj.x; // 1 obj.y; // 2 obj.z; // 3 typeof obj.toString; // ‘function' 'z' in obj; // true obj.hasOwnProperty('z'); // false 备注:z不是obj对象上的,是prototype上的(父类继承的)查看全部
-
第1种创建对象方式-字面量: var obj1 = {x : 1, y : 2}; /*对象值里嵌套对象*/ var obj2 = { x : 1, y : 2, o : { z : 3, n : 4 } };查看全部
-
3.标签:①[[proto]]每个对象都有一个原型,如果在对象中没有此属性,就会一直沿着原型链查找②[[class]]表示对象属于某类③[[extensible]]是否允许继续增加新的属性查看全部
-
1.对象中包含一系列的属性,这些属性是无序的。 2.每个属性都有一个字符串key和对应的value;(注:无论对象的key是什么类型的,最后js都会默认调用toString转换成字符串类型)查看全部
-
函数声明与函数表达式查看全部
-
数组过滤查看全部
-
forEach()方法查看全部
-
强大的splice方法查看全部
-
分割数组查看全部
-
合并数组查看全部
举报
0/150
提交
取消