本文實例講述了JavaScript繼承與多繼承。分享給大家供大家參考,具體如下:
雖然最新的EC6里邊已經有了class的相關功能,但是從普及度上和閱讀舊代碼需求的方面來看,這點知識也得了解一下。
本文結構:
① 原理及分析
② 簡單封裝后的運用
1. 繼承
① 原理及分析
先上一張圖:
用這段代碼的思想來實現繼承,即:
var inherit=function(objBase){ var F=function(){}; //第一步:定義一個函數F F.prototype=objBase; //第二步:將傳進來的基類對象(objBase)賦給函數F的原型(F.prototype) return new F(); //第三步:返回一個F對象(已經具備了objBase特征)}
② 簡單封裝后的運用
Function.prototype.inherit=function(objBase){ this.prototype=new objBase();}var Person=function(){ this.name="倩倩"; this.sex="女";}var Student=function(){ this.id="0712";}Student.inherit(Person);var student=new Student();alert(student.name +","+ student.sex +","+ student.id);
2. 多繼承
① 原理及分析
多繼承就是將多個對象的成員,交給當前對象
var o1={name:"倩倩"} //對象的字面值var o2={sex:"女"}var She=function(){}She.prototype={}; //先聲明for(var k in o1){ She.prototype[k]=o1[k];}for(var k in o2){ She.prototype[k]=o2[k];}var she=new She();alert(she.name + "," + she.sex);
② 簡單封裝后的運用
Function.prototype.inherits=function(){ var arr=arguments; //將接收到的arguments對象傳給數組arr this.prototype={}; for(var i=0;i<arr.length;i++){ for(var k in arr[i]){ var obj=arr[i]; this.prototype[k]=obj[k]; } }}var o1={name:"倩倩"} //對象的字面值var o2={sex:"女"}var She=function(){}She.inherits(o1,o2);var she=new She();alert(she.name + "," + she.sex);
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答