JS继承用法实例分析
本文实例分析了JS继承的用法。分享给大家供大家参考。具体分析如下:
继承:子类不影响父类,子类可以继承父类的一些功能(代码复用)
属性的继承:调用父类的构造函数call
方法的继承:forin: 拷贝继承(jquery也是采用拷贝继承extend)
1.拷贝继承
functionPerson(name){
this.name=name;
}
Person.prototype.showName=function(){
alert(this.name);
}
functionWorker(name,job){
Person.call(this,name);
this.job=job;
}
extend(Worker.prototype,Person.prototype);
//如果用Worker.prototype=Person.prototype的话,会造成引用相同的问题
functionextend(obj1,obj2){
for(variinobj2){
obj1[i]=obj2[i]
}
}
varcoder=newWorker('magicfly','frontEnd');
coder.showName();
2.类继承
functionPerson(name){
this.name=name;
}
Person.prototype.showName=function(){
alert(this.name);
}
functionWorker(name,job){
Person.call(this,name);
this.job=job;
}
//Worker.prototype=newPerson();
//这样继承会继承父级的不必要属性
functionF(){};
F.prototype=Person.prototype;
Worker.prototype=newF();
//通过建立一个临时构造函数来解决,也称为代理函数
varcoder=newWorker('MAGICFLY','START');
coder.showName();
3.原型继承
vara={
name:'小明'
};
varb=cloneObj(a);
b.name='小强';
//alert(b.name);
alert(a.name);
functioncloneObj(obj){
varF=function(){};
F.prototype=obj;
returnnewF();
}
适用情况
拷贝继承: 通用型的 有new或无new的时候都可以
类式继承: new构造函数
原型继承: 无new的对象
希望本文所述对大家的javascript程序设计有所帮助。