正如有人所说的,实例内部原型是到构造函数原型的链接,所以根据这个
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发布于 2013-01-30 13:07:03
在javascript中,你没有真正的类。您可以创建对象,然后添加它的方法和属性。因此,foo的所有实例都将方法/属性应用于foo,这与何时添加它们无关。
发布于 2013-01-30 13:11:18
当您使用new关键字创建对象时,原型不会被复制,而是链接到。在chrome、firefox和safari中(但这是非标准的),可以通过__proto__属性访问该链接,因此:
var x = new T();
console.log(x.__proto__ === T); // => true在内部所做的是,当一个属性被访问时,在对象中找不到它,javascript引擎在prototype对象中查找它,而prototype对象本身可能有一个prototype对象。
https://stackoverflow.com/questions/14596843
复制相似问题