如何判断是否可枚举

倒吊人
  • 35
// 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是一个不的属性

回复
阅读 1.5k
2 个回答
BeliefRC
  • 1k
✓ 已被采纳

判断属性是否可枚举可以用 obj.propertyIsEnumerable(prop) 链接描述

Object.create()的第二个参数和Object.defineProperties()的第二个参数作用是类似的,定义其可枚举属性或修改的属性描述符的对象
在第二个参数中,你没有指定enumerable,而默认值false,所以是getFoo是一个不可枚举的属性。
Object.create()

Object.defineProperties()

Object.getOwnPropertyDescriptor
宣传栏