当前位置:编程学习 > JAVA >>

JAVASCRIPT继承--混合方式

 实现JavaScript继承的最简单的方式是call方法(或者apply方法)及原型链方法,但这两种方法都有缺陷,而其混合体就是很好的继承实现方式。下面举例说明:
[javascript]
function Animal(age){ 
    this.age = age; 

 
Animal.prototype.sayAge = function(){ 
    window.alert("My age is "+this.age+"!"); 
}; 
 
function Dog(age,name){ 
    Animal.call(this,age); 
    this.name = name; 

Dog.prototype = new Animal(); 
Dog.prototype.sayName = function(){ 
    window.alert("I am a "+this.name+"!"); 
}; 
 
var dog = new Dog(15,"dog"); 
dog.sayName(); 
dog.sayAge(); 

  对于类Animal来说,它有一个字段属性age及函数属性sayAge,sayAge方法的定义采用的是原型方式。Dog类要继承Animal,其字段属性除了age外还有name,通过Animal.call(this,age);可以实现Dog继承Animal的字段属性age并将其初始化了。call方法的第一个参数为继承的类的this指针,第二个参数为Animal类的构造函数的参数。实际上,只是通过call方法就可以实现继承,但唯一的要求是父类的函数属性要在构造函数中定义,这对于这里的函数属性使用原型方式定义来说就不适合了(采用原型方式定义函数属性比在构造函数内定义更直观一些)。
作者:hfmbook

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,