function Foo1(){
this.name1 = '1';
}
function Foo2(){
this.name2 = '2';
}
Foo2.prototype = new Foo1();
function Foo3(){
this.name = '3';
}
Foo3.prototype = new Foo2();
var foo3 = new Foo3();
console.dir(foo3);
各位帮忙分析下,为什么箭头指向的地方打印出来不是Foo2而是Foo1,这是什么原理?
因为你将Foo1的实例复制给Foo2的原型,这时候Foo2.prototype.constructor指向的是Foo1,如果你在Foo2.prototype=new Foo1后面加一行Foo2.prototype.constructor=Foo2,将constructor重新修改为Foo2。应该就能达到你想要的结果了。