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)