JavaScript繼承與多繼承實例分析
本文實例講述了JavaScript繼承與多繼承。分享給大家供大家參考,具體如下:
雖然最新的EC6里邊已經有了class的相關功能,但是從普及度上和閱讀舊代碼需求的方面來看,這點知識也得了解一下。
本文結構:
① 原理及分析
② 簡單封裝后的運用
1. 繼承
① 原理及分析
先上一張圖:

用這段代碼的思想來實現(xiàn)繼承,即:
var inherit=function(objBase){
var F=function(){}; //第一步:定義一個函數(shù)F
F.prototype=objBase; //第二步:將傳進來的基類對象(objBase)賦給函數(shù)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對象傳給數(shù)組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數(shù)據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數(shù)學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
- JavaScript實現(xiàn)多重繼承的方法分析
- 深入淺析javascript繼承體系
- JS繼承與閉包及JS實現(xiàn)繼承的三種方式
- js中繼承的幾種用法總結(apply,call,prototype)
- JavaScript是如何實現(xiàn)繼承的(六種方式)
- 深入了解javascript中的prototype與繼承
- Javascript基于對象三大特性(封裝性、繼承性、多態(tài)性)
- javascript的函數(shù)、創(chuàng)建對象、封裝、屬性和方法、繼承
- Javascript 繼承機制的實現(xiàn)
- JavaScript的原型繼承詳解
- JavaScript繼承定義與用法實踐分析
相關文章
JavaScript中的執(zhí)行環(huán)境和作用域鏈
這篇文章主要介紹了JavaScript中的執(zhí)行環(huán)境和作用域鏈,幫助大家更好的理解和學習JavaScript,感興趣的朋友可以了解下2020-09-09
利用weixin-java-miniapp生成小程序碼并直接返回圖片文件流的方法
這篇文章主要介紹了利用weixin-java-miniapp生成小程序碼并直接返回圖片文件流的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03
一文讀懂JS中的var/let/const和暫時性死區(qū)
這篇文章主要為大家詳細介紹了JavaScript中的var、let、const和暫時性死區(qū)的異同,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-02-02
js 獲取頁面高度和寬度兼容 ie firefox chrome等
這篇文章主要介紹了js如何獲取頁面高度和寬度并且兼容ie firefox chrome等主流瀏覽器2014-05-05

