为什么在控制台中无法通过Object.create()看到添加的属性?

时间:2013-06-18 07:52:19

标签: javascript

<script>
var person = {
  kind: 'person'
}

var zack = Object.create(person, {age: {value:  13} });
console.log(zack); 
</script>

问题:

在firebug-&gt;控制台中,它显示:对象{kind =“person”},为什么我看不到添加的属性:年龄?

3 个答案:

答案 0 :(得分:1)

尝试:

var zack = Object.create(person, {age: {value:  13, enumerable:true} });
console.log(zack); 

答案 1 :(得分:1)

  

在firebug-&gt;控制台中,它显示:对象{kind =“person”},为什么我看不到添加的属性:年龄?

默认情况下,

Object.create()不会将enumerable属性设置为true!由于它是假的,财产将不会显示。参见property descriptors at MDN(在这种情况下是一个访问者描述符),这是一个很好的参考开始!

  

枚举

     

当且仅当在枚举相应对象的属性期间显示此属性时才显示true。 默认为false。

答案 2 :(得分:0)

使用enumerable:true里面。它应该工作。

同时检查此线程有关可枚举属性的信息。 What is the enumerable argument for in Object.create?