需要帮助理解Javascript中的哈希

时间:2014-07-28 22:20:20

标签: javascript oop object hash

我真的不明白这一点。有谁可以向我解释一下?它来自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

1 个答案:

答案 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]
    }
}