在一个简单的定义中,Object.create(proto[, propertiesObject])是定义对象属性的摘要或定义对象属性的规范的一种方式。它的工作原理与其他一些语言中的abstract classes
类似,&不是specific object
。
它并不一定为正在创建的对象的道具提供默认值。 您只提供了一个文字(4),这显然不是能够描述属性规范的对象。我们将在这里看到,它自己的4个(甚至不一定)只是腿的属性对象的一部分。
现在。考虑到这一点,我们尝试使用Object.create()
来创建dog
对象。在这里,我们去:
- 要求:我们希望我们的狗有一个名为
legs
属性。我们需要legs
枚举对象时可枚举。我们不想让别人用赋值运算符来改变它。 &我们也希望默认为4
- 实施:现在,我们已经决定
legs
财产的规范,我们需要一个Property Descriptor来定义它[的Object.defineProperties(obj, props)
第二个参数]
的。上述props
是第二{&}可选在Object.create(proto[, propertiesObject])
&参数具有用于描述对象的特性一些键:
props {configurable, enumerable, value, writable, get, set}
允许代码dog
对象:
let dog=Object.create(mammal,{
legs:{
enumerable : true,
writable : false,
value : 4 }
});
更多的澄清,读取二者上面链接的参考文献,是高度有益的。