本文主要是介绍原型链的继承都发生在构造函数上,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
网上的一道题目:
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);
这篇关于原型链的继承都发生在构造函数上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!