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程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下