首页 > 代码库 > javascript高级知识点——继承

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函数。

 

javascript高级知识点——继承