obj.prototype和Object.getPrototypeOf(obj)之间的区别是什么

时间:2016-07-27 11:43:12

标签: javascript

我使用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中的第一个参数是什么?

由于

1 个答案:

答案 0 :(得分:1)

您已经找到了关于JavaScript语言最奇怪的事情:prototype属性。在JavaScript中,对象通过原型链从父级继承属性。

但是JavaScript的工作原理是对象的prototype属性不是该对象的原型 - 它是用作new从其创建的其他对象的原型的值。因此Car.prototype是使用new Car()创建新实例的原型的价值。

原型继承意义上的对象原型实际上是Object.getPrototypeOf()可以获得的。您可以在Understanding the prototype property in JavaScript

中了解有关此内容的更多信息