我使用Object.create
方法创建了一个对象,因此Object.create
期望原型对象作为第一个参数,属性描述符是第二个参数。
var obj = Object.create({a:2},{b:{value:3}})
所以,{a:2}
是obj的原型。但如果我正在寻找像obj.prototype
这样的原型返回undefined
,但如果我使用Object.getPrototypeOf(obj)
检查返回{a:2}
Object.create
中的第一个参数是什么?
由于
答案 0 :(得分:1)
您已经找到了关于JavaScript语言最奇怪的事情:prototype
属性。在JavaScript中,对象通过原型链从父级继承属性。
但是JavaScript的工作原理是对象的prototype
属性不是该对象的原型 - 它是用作new
从其创建的其他对象的原型的值。因此Car.prototype
是使用new Car()
创建新实例的原型的价值。
原型继承意义上的对象原型实际上是Object.getPrototypeOf()
可以获得的。您可以在Understanding the prototype property in JavaScript