如何判断是否可枚举

// 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是一个不的属性

阅读 2.4k
2 个回答

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

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

Object.defineProperties()

Object.getOwnPropertyDescriptor
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题