在创建具有属性的JavaScript对象时,为什么需要此代码

When creating JavaScript objects with properties, why is this code necessary?

本文关键字:为什么 代码 对象 创建 属性 JavaScript      更新时间:2023-10-01

我在这里读到了关于JavaScript原型的文章。在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}

因为参数是一个属性对象。你不仅仅是在定义场,你还在定义一种有点不同的动物的属性。例如,您可以指定"age"不可写。参考本文档:

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