使用Object.keys()打印属性

时间:2016-05-24 05:39:14

标签: javascript prototype

我尝试使用Object's方法打印prototype个属性(不包括Object.keys()属性)。

var obj = {
    name : "Jane"
}

keys = Object.keys(obj); //["name"]

当我做的时候

console.log("length" in keys) //It is printing true?

我相信"length"来自prototype。为什么它存在于keys数组中?

2 个答案:

答案 0 :(得分:2)

Object.keys()会返回ArrayArrays always have length property

来自Mozilla文档。

  

Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举原型链中的属性。)

答案 1 :(得分:2)

  

为什么它存在于keys数组中?

它存在于keys array中,因为keys数组的实例,而数组具有属性length

这相当于说

if ( "length" in keys)
{ 
  console.log(true)
}

此处也查看in operator文档。

  

如果指定的属性在,则in运算符返回true   指定的对象。