<script>
var person = {
kind: 'person'
}
var zack = Object.create(person, {age: {value: 13} });
console.log(zack);
</script>
问题:
在 firebug->console 中,它显示:Object { kind="person"},为什么我看不到添加的属性:age?
<script>
var person = {
kind: 'person'
}
var zack = Object.create(person, {age: {value: 13} });
console.log(zack);
</script>
问题:
在 firebug->console 中,它显示:Object { kind="person"},为什么我看不到添加的属性:age?
尝试:
var zack = Object.create(person, {age: {value: 13, enumerable:true} });
console.log(zack);
在 firebug->console 中,它显示:Object { kind="person"},为什么我看不到添加的属性:age?
Object.create()
默认情况下不会将 enumerable 属性设置为 true!因为它是假的,所以该属性将不会显示出来。请参阅MDN 上的属性描述符(在本例中是访问器描述符),这是一个很好的入门参考!
可枚举的
当且仅当在枚举相应对象的属性期间显示此属性时才为 true。默认为假。
在里面使用 enumerable: true 。它应该工作。
还要检查这个关于可枚举属性的线程。 Object.create 中的可枚举参数是什么?