您的位置:首页 > Web前端 > JavaScript

javascript的几种继承方式

2015-11-27 21:18 585 查看
javascript继承

首先在开始之前,需要弄清楚prototype

Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。

意思就是每个对象都会有一个prototype属性,这个属性也是一个对象,默认是指向这个对象的。如果prototype指向改变,prototype对象下面包含的属性和方法就会添加到指向的对象中,实现继承。

functionAnimal(){
this.species="动物";
}
functionCat(name,color){
this.name=name;
this.color=color;
}

Cat.prototype=newAnimal();
Cat.prototype.constructor=Cat;
varcat=newCat("cat","red");
alert(cat.species);


Cat.prototype=newAnimal();//执行之前,Cat.prototype保存的是Cat的构造函数和它的属性,当指向改变时,Cat.prototype改变为Animal的构造函数和属性。

Cat.prototype.constructor=Cat;//这句话的意思是把Cat.prototype的构造函数重新复制给它。

利用空对象保存信息来中转:


functionAnimal(){

}

Animal.prototype.species="动物";

functionCat(name,color){
this.name=name;
this.color=color;
}

varf=function(){};
f.prototype=Animal.prototype;
Cat.prototype=f.prototype;
Cat.prototype.constructor=Cat;


yui库实现继承的方法

functionextend(parent,child){
varf=function(){};
f.prototype=parent.prototype;
child.prototype=newf();
child.prototype.constructor=child;
//child.uber=parent.prototype;uber向上
}


拷贝继承

functionextend1(parent,child){
vara=parent.prototype;
varb=child.prototype;
for(variina){
b[i]=a[i];
}
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: