// 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是一个不的属性
// 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是一个不的属性
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
判断属性是否可枚举可以用
obj.propertyIsEnumerable(prop)
链接描述Object.create()
的第二个参数和Object.defineProperties()
的第二个参数作用是类似的,定义其可枚举属性或修改的属性描述符的对象在第二个参数中,你没有指定
enumerable
,而默认值false,所以是getFoo是一个不可枚举的属性。Object.create()
Object.defineProperties()