正如某人说的那样,实例内部原型是构造函数原型的链接,因此按照这个
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
答案 0 :(得分:0)
在javascript中你没有真正的课程。您可以创建对象,然后添加它的方法和属性。所以foo的所有实例都会将方法/属性应用于foo,无论何时添加它们都无关紧要。
答案 1 :(得分:0)
当您使用new
关键字创建对象时,原型不会复制,而是链接。在chrome,firefox和safari中(但这是非标准的),可以通过__proto__
属性访问该链接,因此:
var x = new T();
console.log(x.__proto__ === T); // => true
内部正在做的是当访问属性并且在对象中找不到它时,javascript引擎会在原型对象中查找它,原型对象本身可以有一个原型对象。