多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > Javascript繼承匯總

Javascript繼承匯總

來源:程序員人生   發布時間:2013-10-30 22:19:08 閱讀次數:3515次
本文是我在看完《Javascript 王者歸來》后的整理總結,文章詳細章節在 第21章 P537

繼承一般要實現以下三層含義:

1)子類實例可以共享父類的方法;

2)子類可以覆蓋父類的方法或者擴展新的方法;

3)子類和父類都是子類實例的類型。

一、構造繼承法

子類中調用父類的構造函數來維護的,該繼承法能實現多重繼承,但只能繼承父類的共有方法,無法繼承靜態方法,而且不能用instanceof來驗證實例。

function a(){
this.say=function(){
alert("happy new year!");
}
}

function b(){
a.apply(this,arguments);
}

a.prototype.fuck=function(){
alert("%^&%^&%&^%&");
}

var oB=new b();
alert(oB instanceof a);// false
oB.say(); // happy new year
oB.fuck(); // 讀不到

二、原型繼承法/經典繼承法

該繼承法是通過復制已經存在的原型對象來實現行為重用,讓對象實例共享原型對象的屬性。支持多重繼承,繼承原型靜態方法,能用instanceof來驗證實例。

function a(){
this.say=function(){
alert("happy new year!");
}
}

function b(){}

a.prototype.fuck=function(){
alert("%^&%^&%&^%&");
}

a.prototype.z=123;
b.prototype=new a();

var oB=new b();
alert(oB instanceof a); // true
alert(oB.z); // 123
oB.say(); // happy new year
oB.fuck(); // %^&%^&%&^%&

三、實例繼承法/寄生構造函數模式

構造法不能繼承類型的靜態方法,原型繼承得不完善(某些核心對象的不可枚舉方法不能繼承),而實例繼承法能對原生核心對象或者DOM對象進行繼承,它通過在類型中構造對象并返回的辦法來實現繼承,因此instanceof驗證會是false,不支持多重繼承。

function a(){
var oA=new Array();
oA.say=function(){
alert("hello A!");
}
return oA;
}

var obj=new a();
alert(obj instanceof a); // false
obj.say();

四、拷貝繼承法

該方法通過拷貝基類對象的所有可枚舉屬性和方法來模擬繼承,因此它可以模擬多繼承,但不能枚舉的就無法繼承;它可以繼承父類的靜態方法;

function a(){
this.num=123;
this.say=function(){
alert("happy new year!");
}
}

function b(){
this.extends=function(obj){
for(each in obj){
this[each]=obj[each];
}
}
}

var oB=new b();
oB.extends(new a());

alert(oB instanceof a); // false
alert(oB.num); // 123
oB.say(); // happy new year

五、混合繼承法

顧名思義就是把上面幾種繼承法綜合起來,取長補短,讓繼承更完善。常見的有 構造+原型繼承:偽經典繼承

function a(){
this.num=123;
this.say=function(){
alert("happy new year!");
}
}

function b(){
a.apply(this);
}

b.prototype=new a();
b.prototype.z=123;

var oB=new b();
alert(oB instanceof a); // true
alert(oB.num); // 123
oB.say(); // happy new year

六、各種繼承法的優缺點

Javascript繼承匯總

文章來源:http://blog.sina.com.cn/s/blog_74d6cedd0100z7z3.html

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 伊人网站 | 爱爱免费网址 | 日韩欧美视频一区二区在线观看 | 欧美精品影院 | 91好色| 18在线观看国内精品视频 | 欧美性黑人极品 hd 欧美性黑人极品hd 欧美性活生活视频 | 性xxxx视频播放免费 | 在线亚洲网站 | 国产一区二区三区亚洲综合 | 精品欧美一区二区三区精品久久 | 校园春色欧美 | 黑人双渗透 | 国产99精品一区二区三区免费 | 国产精品久久久久久久 | 最近中文字幕mv免费视频 | 老司机午夜在线视频免费观 | 成人网在线 | 欧美激情视频一区二区三区 | 亚洲日韩精品欧美一区二区 | 五月天婷婷一区二区三区久久 | 成人69视频在线观看免费 | 女人大毛片一级毛片一 | 亚洲三级图片 | 亚洲欧美综合在线观看 | 亚洲一区二区三区久久久久 | 国产成人精品久久一区二区三区 | 精品国产96亚洲一区二区三区 | 综合免费一区二区三区 | 啪啪的视频网站 | www.亚洲天堂 | 中国精品18videosex性中国 | 亚洲第一福利视频 | 久久精品一区二区三区中文字幕 | 成人免费淫片免费观看 | 一级做a爰片欧美aaaa | 日韩18在线观看 | 一本久道久久综合中文字幕 | 亚洲一级香蕉视频 | 国产精品久久久久久久久 | 欧美大片毛片aaa免费看 |