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程序设计有所帮助。