关于js原型继承

function F(){}
function A(){}
F.prototype = A;
console.log(new F())   //F {}
console.log(new F().prototype)    //A {}

为什么new F().prototype 会是 A{}
new 不是应该把new F().__proto__指向F.prototype吗
继承看的云里雾里是否有什么好的文章推荐呢

阅读 2.9k
4 个回答

new F().prototype === (new F()).prototype而不是new (F().prototype),如果是new F.prototype,才是new (F.prototype)
new 是把new F().__proto__指向F.prototypeF.prototype = A;你把F.prototype指向了A构造器了,所以是有prototype属性的。new F().prototype === new F().__proto__.prototype

F.prototype 不就是 A 了么 ..

Chrome 下面和你的打印结果不太一样啊

function F(){}
function A(){}
F.prototype = A;
console.log(new F())   //F {}
console.log(new F().prototype)    //Object {}
console.log(new F().__proto__)    //A{}

推荐阅读: http://blog.jobbole.com/66441/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题