javascript高级知识点——继承
代码信息来自于http://ejohn.org/apps/learn/。
继承是如何工作的
function Person(){} function Ninja(){} Ninja.prototype = new Person(); var ninja = new Ninja(); console.log( ninja instanceof Ninja, "ninja自动接收Ninja.prototype里的属性" ); console.log( ninja instanceof Person, "也是来自Person.prototype" ); console.log( ninja instanceof Object, "也是来自and the Object prototype" );
本例可以很好表明继承机制和原型链。根本原理是实例化继承构造函数的原型,它使用__proto__访问上级。ninja继承Ninja,Ninja就是new Person(),继承Person.prototype,而Person.prototype,继承自最根本的Object.prototype。
构建我们自己的继承
function Person(){} Person.prototype.getName = function(){ return this.name; }; function Me(){ this.name = "John Resig"; } Me.prototype = new Person(); var me = new Me(); console.log( me.getName());
me对象属性 = 实例化时自己的属性 + Me.prototype的属性 +Object.prototype的属性。
所以这个me对象拥有自己的name属性,getName函数。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。