// getFoo is a property which isn't enumerable var myObj = Object.create({}, { getFoo: { value: function () { return this.foo; } } }); myObj.foo = 1; console.log(Object.keys(myObj)); // console: ['foo'] 为什么GetFoo是一个不的属性
判断属性是否可枚举可以用 obj.propertyIsEnumerable(prop) 链接描述 Object.create()的第二个参数和Object.defineProperties()的第二个参数作用是类似的,定义其可枚举属性或修改的属性描述符的对象在第二个参数中,你没有指定enumerable,而默认值false,所以是getFoo是一个不可枚举的属性。Object.create() Object.defineProperties()
判断属性是否可枚举可以用
obj.propertyIsEnumerable(prop)
链接描述Object.create()
的第二个参数和Object.defineProperties()
的第二个参数作用是类似的,定义其可枚举属性或修改的属性描述符的对象在第二个参数中,你没有指定
enumerable
,而默认值false,所以是getFoo是一个不可枚举的属性。Object.create()
Object.defineProperties()