码迷,mamicode.com
首页 > 其他好文 > 详细

原型链的继承都发生在构造函数上

时间:2016-08-28 20:44:38      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

网上的一道题目:
var M = function() { this.person = "life" }, N = function() { this.gate = "ok" }; var k = new M(), l = new N();


k.__proto__ = l;

console.log(k.gate);

这么写是有问题的。

_proto_和prototype的区别。

首先应该是 k.prototype ...原型链的继承都是基本都是发生在构造函数上的,所以在实例上进行继承有点不靠谱。你这么写是没有问题的:

m.prototype = new n;
m.prototype.constructor = m;
k = new m;
console.log(k.gate);

或者你也可以用简单点的办法:

 
var m = function(){
    n.apply(this, [].slice.call(arguments));
    this.person = "Life";
}
k = new m;
console.log(k.gate);

原型链的继承都发生在构造函数上

标签:

原文地址:http://www.cnblogs.com/wyaocn/p/5815755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!