Object.create和Prototypes

Faw*_*es5 3 javascript prototype object-create

当我使用object.create创建一个像这样的新对象时,

o = {x:1,y:2};
p = Object.create(o);
Run Code Online (Sandbox Code Playgroud)

我的印象是o成为p的原型并继承了它的所有方法.

那么,为什么,当我尝试

print(p.prototype);
Run Code Online (Sandbox Code Playgroud)

输出未定义?o定义明确!!

谢谢

Fel*_*ing 8

只有函数具有prototype属性[ES5].

po通过内部[[Prototype]]属性引用,在某些浏览器中可以通过__proto__ [MDN]访问,但现在已弃用.

您可以使用Object.getPrototypeOf [MDN]获取对象原型的引用:

Object.getPrototypeOf(p) === o // true
Run Code Online (Sandbox Code Playgroud)