详解javascript类继承机制的原理

来源:互联网 发布:js删除对象中的元素 编辑:程序博客网 时间:2024/05/16 18:09

本文着重解析javascript类继承机制,让你从底层了解javascript是怎样实现“继承”这一概念的。

                                                                jimichan在javaeye博客发布,转载请说明。
   目前 javascript的实现继承方式并不是通过“extend”关键字来实现的,而是通过constructor function和prototype属性来实现继承。首先我们创建一个animal
js 代码
 
  1.  var animal function(){  //这就是constructor function 了 
  2.    this.name = 'pipi';    
  3.    this.age = 10;      
  4.    this.height = 0;      
  5. }      
  6.  //建立一个动物的实例    
  7.  var a1 =  new animal ();   

构造函数与其他普通函数区别在于,1.构造函数里有 this关键字,2.调用构造函数是使用的new关键字。通过new运算符调用构造函数animal 后,系统就会返回一个对象,这个对象就相当于
js 代码
  1. var a1 = { name:'pipi' ,age:10,height:0 }  
  2.   
  3. //或者  
  4. var a1 = new Object();  
  5. a1.name='pipi';  
  6. a1.age = 10;  
  7. a1.height = 0; 
等同这样的方式来产生js对象。

到这里我们知道如何在js中定义一个类了,接下来我们展示如何写一个cat

js 代码
 
  1. var cat = function(){    
  2. this.play = function(){     
  3.  alert('cat play')    
  4.  }    
  5.  }    
  6.  cat .prototype = new animal ();    
  7.  //prototype 属性指向一个对象 
  8. var c1 = new cat();

到这里,cat就继承了animal 对象,类cat的一个实例对象c1拥有属性name,age,height,和方法play了。



转自:http://jimichan.javaeye.com/blog/119815
原创粉丝点击