使用属性创建JavaScript对象时,为什么需要此代码?

时间:2013-11-25 04:11:04

标签: javascript object properties prototype

我正在阅读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}

1 个答案:

答案 0 :(得分:5)

因为参数是属性对象。你不只是定义字段,你定义的属性是一个不同的动物。例如,您可以指定'age'不可写。请参阅此文档:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create