我真的不明白这一点。有谁可以向我解释一下?它来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys。
// getFoo is property which isn't enumerable
var my_obj = Object.create({}, { getFoo : { value : function () { return this.foo } } });
my_obj.foo = 1;
alert(Object.keys(my_obj)); // will alert only foo
答案 0 :(得分:0)
唯一定义的键是foo
。根据定义,继承的成员不是键。因此,在第一行中,您将创建一个继承自getFoo
的对象。此方法getFoo
不是继承对象中的键,而是它的父级。
在参考文献中,重点是 OWN PROPERTIES :
要返回其可枚举的自有属性的对象
事实上,keys
是一个ES5复兴的鲜为人知且不太有用的hasOwnProperty()
方法,使用这种方式:
for (key in obj)
{
if (obj.hasOwnProperty(key)) // exclude inherited keys
{
// do something with obj[key]
}
}