0

正如有人所说,实例内部原型是到构造函数原型的链接,因此按照这个

 function foo(){}
 x=new foo()
 foo.prototype={};
 x instanceof foo//false (if instance internal prototype is a link to constructor prototype than it should have been replaced with replacing prototype) but
 x.constructor==foo//true why according to the above definition if internal prototype is a link to constructor prototype it should have been updated
4

2 回答 2

0

在 javascript 中,您没有真正的课程。您创建对象,然后添加它的方法和属性。所以 foo 的所有实例都将具有应用于 foo 的方法/属性,无论何时添加它们都无关紧要。

于 2013-01-30T05:07:02.690 回答
0

当您使用new关键字制作对象时,原型不会被复制,而是被链接到。在 chrome、firefox 和 safari(但这是非标准的)中,可以通过__proto__属性访问该链接,因此:

var x = new T();
console.log(x.__proto__ === T); // => true

内部所做的是,当一个属性被访问并且在对象中找不到它时,javascript引擎在原型对象中查找它,原型对象本身可能有一个原型对象。

于 2013-01-30T05:11:17.533 回答