我正在阅读JavaScript原型here。在Object.create标题下,写出一些代码来说明创建具有原型和某些属性的对象:
var person = {
kind: 'person'
}
// creates a new object which prototype is person
var zack = Object.create(person);
console.log(zack.kind); // => ‘person’
然后我遇到了这个:
var zack = Object.create(person, {age: {value: 13} });
console.log(zack.age); // => ‘13’
我没有传递{age: {value: 13} }
,而是通过{age: 13}
,因为它似乎更简单。不幸的是,抛出了TypeError
。为了像这样创建这个对象的属性,为什么我们必须传递{age: {value: 13} }
而不仅仅是{age: 13}
?
答案 0 :(得分:5)
因为参数是属性对象。你不只是定义字段,你定义的属性是一个不同的动物。例如,您可以指定'age'不可写。请参阅此文档:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create