实例内部原型

时间:2013-01-30 04:43:27

标签: javascript jquery

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

 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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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