中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Javascript中3種實(shí)現(xiàn)繼承的方法和代碼實(shí)例
來(lái)源:易賢網(wǎng) 閱讀:1138 次 日期:2014-08-14 16:08:44
溫馨提示:易賢網(wǎng)小編為您整理了“Javascript中3種實(shí)現(xiàn)繼承的方法和代碼實(shí)例”,方便廣大網(wǎng)友查閱!

繼承是我們?cè)趯?shí)現(xiàn)面向?qū)ο缶幊痰臅r(shí)候很重要的一個(gè)手段。雖然我們講不能過(guò)度繼承,多利用組合代替繼承,但是繼承總是免不了的。這里要討論的就是Javascript中的繼承機(jī)制。

Javascript中實(shí)際上是沒(méi)有繼承的概念的,但是我們可以通過(guò)一些手段來(lái)模仿實(shí)現(xiàn)它。這種繼承實(shí)際上把一個(gè)對(duì)象復(fù)制到另外一個(gè)對(duì)象內(nèi)部。你需要注意的是所有的本地類和宿主類是不能作為基類被繼承的,主要是為了安全方面的考慮。

Javascript中的繼承大約有三類:1.對(duì)象冒充;2.原型繼承;3.二者的混合。

一、對(duì)象冒充

其實(shí)對(duì)象冒充是跟this關(guān)鍵字緊密聯(lián)系在一起的(所以說(shuō)充分理解Javascript中的this關(guān)鍵字是多么的重要:P)。構(gòu)造函數(shù)使用this來(lái)給屬性和方法賦值,而構(gòu)造函數(shù)也可以看作為一個(gè)普通的函數(shù),所以我們就可以使我們的基類的構(gòu)造函數(shù)成為子類的構(gòu)造函數(shù),然后在子類的內(nèi)部調(diào)用這個(gè)函數(shù),那么子類就會(huì)得到父類的屬性和方法。

原理很簡(jiǎn)單,那我們?cè)趺磳?shí)現(xiàn)呢?下面就以代碼示例,實(shí)際的操作一下。

對(duì)象冒充實(shí)現(xiàn)方法一,我們最常用的新建對(duì)象的方法:

代碼如下:

var classA = function(name){

this.name = name;

this.alertName = function(){

alert(this.name);

}

}

var classB = function(name,age){

this.myConstructor = classA;

this.myConstructor(name);

delete this.myConstructor;

this.age = age;

this.alertAge = function(){

alert(this.age);

}

}

為了驗(yàn)證以上的方法是否正確,你可以親自測(cè)試下,我將測(cè)試用的代碼寫在下面:

代碼如下:

var objA = new classA('DK');

objA.alertName();//DK

var objB = new classB('DS',20);

objB.alertName();//DS

objB.alertAge();//20

這就是所謂的對(duì)象冒充了,另外對(duì)象冒充還有另外兩種實(shí)現(xiàn)的方式,雖然它們的實(shí)現(xiàn)手段不一樣,但是它們的原理是一樣的。

對(duì)象冒充實(shí)現(xiàn)方法二,使用call方法:

代碼如下:

var classA = function(name){

this.name = name;

this.alertName = function(){

alert(this.name);

}

}

var classB = function(name,age){

classA.call(this,name);

this.age = age;

this.alertAge = function(){

alert(this.age);

}

}

通過(guò)代碼也能看出來(lái),第一種方法中我們新建了函數(shù)指針指向父類,調(diào)用函數(shù),然后將指針刪除。而這里我們之間用call方法在this對(duì)象下面運(yùn)行父類的構(gòu)造函數(shù),實(shí)現(xiàn)了同樣的目的。另外與call方法相對(duì)于的則就是apply方法啦。

對(duì)象冒充實(shí)現(xiàn)方法三,使用apply方法:

代碼如下:

var classA = function(name){

this.name = name;

this.alertName = function(){

alert(this.name);

}

}

var classB = function(name,age){

classA.apply(this,new Array(name));

this.age = age;

this.alertAge = function(){

alert(this.age);

}

}

其實(shí)大家可以看到,apply方法跟call方法是非常類似的,只不過(guò)傳遞參數(shù)是略有不同罷了。

二、原型繼承

大家應(yīng)該對(duì)prototype對(duì)象有所了解,原型對(duì)象上的所有屬性和方法將被傳遞給類的所有實(shí)例,所有當(dāng)我們把父類的所有屬性和方法付給子類的prototype對(duì)象時(shí)也就相當(dāng)于實(shí)現(xiàn)了我們的繼承。

子類想獲得父類的所有屬性和方法,那我們將父類的一個(gè)實(shí)例直接付給子類的prototype對(duì)象,那我們的子類不就相當(dāng)于獲取了父類的所有對(duì)象和方法?

代碼示例伺候:

代碼如下:

var classA = function(){

this.name = 'DK';

this.alertName = function(){

alert(this.name);

}

}

var classB = function(name,age){

this.name = name;

this.age = age;

}

classB.prototype = new classA();

classB.prototype.alertAge = function(){

alert(this.age);

}

注意這里的父類的構(gòu)造函數(shù)需要確保沒(méi)有參數(shù)。因?yàn)榧词褂袠?gòu)造參數(shù)在實(shí)現(xiàn)原型繼承的時(shí)候你也無(wú)法傳遞=.=!

三、混合繼承

顧名思義,混合繼承就是前兩種方式的混合使用了。

代碼如下:

var classA = function(name){

this.name = name;

}

classA.prototype.alertName = function(){

alert(this.name);

}

var classB = function(name,age){

classA.call(this,name);

this.age = age;

}

classB.prototype = new classA();

classB.prototype.alertAge = function(){

alert(this.age);

}

使用對(duì)象冒充實(shí)現(xiàn)了向父類傳遞參數(shù),同時(shí)使用原型繼承實(shí)現(xiàn)了對(duì)公有方法的繼承。

說(shuō)完了這三中繼承方式了,下面該說(shuō)到問(wèn)題的時(shí)候了。

你可能會(huì)不解,為什么有了對(duì)象冒充,有了原型繼承還要再弄出個(gè)什么混合繼承,對(duì),最重要的也就是這個(gè)問(wèn)題。

1.如果你實(shí)際測(cè)試一下,你會(huì)發(fā)現(xiàn)通過(guò)對(duì)象冒充的方式實(shí)現(xiàn)的繼承,子類是無(wú)法訪問(wèn)到父類的原型鏈上的方法的。

2.而用原型繼承,則會(huì)把所有的屬性變成共享的屬性,如果你同一個(gè)子類實(shí)現(xiàn)兩個(gè)實(shí)例,你會(huì)發(fā)現(xiàn)你的所有實(shí)例共享所有的屬性。

3.但是這肯定是不合適的了。所以就有了混合繼承的方式,讓屬性繼續(xù)保持私有,同時(shí)讓子類能夠訪問(wèn)父類的原型鏈的方法。

你可以親自動(dòng)手試一下,在對(duì)象冒充繼承的時(shí)候,子類無(wú)法訪問(wèn)父類的原型鏈方法,原型鏈繼承子類的所有實(shí)例共享所有父類屬性。這里我就不寫例子了。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Javascript中3種實(shí)現(xiàn)繼承的方法和代碼實(shí)例
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn)

版權(quán)所有:易賢網(wǎng)

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧洲一区二区av| 91视频.com| 色婷婷狠狠综合| 一卡二卡三卡日韩欧美| 欧美视频在线播放| 日本成人在线看| 国产日韩欧美激情| 一本一道久久a久久精品| 亚洲国产成人高清精品| 日韩欧美国产一区二区三区| 国内精品免费**视频| 亚洲视频一二三区| 日韩三区在线观看| 91影视在线播放| 国内精品国产成人国产三级粉色 | 91一区二区在线| 自拍偷拍欧美精品| 欧美色涩在线第一页| 国产一区中文字幕| 亚洲精品中文在线| 久久美女高清视频| 欧美三级电影在线看| 国产剧情一区二区| 丝袜亚洲另类欧美综合| 1024国产精品| 久久九九久久九九| 91精品免费观看| 色吧成人激情小说| 成人性生交大片免费看视频在线 | 99久久亚洲一区二区三区青草| 性做久久久久久免费观看| 国产精品污网站| 亚洲精品在线三区| 欧美丰满一区二区免费视频| 91视频一区二区三区| 成人av影院在线| 国产成人免费在线| 韩国精品免费视频| 另类小说一区二区三区| 亚洲第四色夜色| 亚洲一区日韩精品中文字幕| 国产精品青草综合久久久久99| 91精品婷婷国产综合久久竹菊| 欧美综合天天夜夜久久| 色成人在线视频| 91国产精品成人| 在线观看一区二区视频| 色一区在线观看| 在线观看av不卡| 欧美色精品在线视频| 欧美视频一区在线观看| 精品视频色一区| 91精品国产一区二区| 91精品中文字幕一区二区三区| 日本韩国精品一区二区在线观看| 色综合久久中文综合久久牛| 99久久精品国产导航| 色诱亚洲精品久久久久久| 色猫猫国产区一区二在线视频| 欧美在线观看视频一区二区三区| 在线视频中文字幕一区二区| 在线观看日韩一区| 欧美人妖巨大在线| 日韩精品中文字幕在线不卡尤物| 精品少妇一区二区三区免费观看| 久久午夜羞羞影院免费观看| 久久夜色精品国产欧美乱极品| 国产精品欧美精品| 亚洲精品高清视频在线观看| 亚洲国产成人av网| 国产中文字幕精品| aaa亚洲精品| 欧美日韩国产首页在线观看| 日韩视频一区二区在线观看| 国产日韩精品一区二区浪潮av| 亚洲欧洲精品一区二区三区不卡| 一区二区三区在线高清| 日本欧美肥老太交大片| 丁香婷婷综合激情五月色| 91久久线看在观草草青青| 日韩一级片网址| 日本一区二区成人| 日本中文字幕一区| 99热在这里有精品免费| 日韩一级大片在线观看| 国产精品福利一区二区三区| 亚洲电影欧美电影有声小说| 成人高清视频在线| 95精品视频在线| 欧美日韩免费观看一区三区| 欧美一区永久视频免费观看| 国产三级精品在线| 亚洲激情综合网| 精品一区中文字幕| 色乱码一区二区三区88| 3751色影院一区二区三区| 国产偷国产偷亚洲高清人白洁| 亚洲精品视频一区二区| 奇米888四色在线精品| 在线观看网站黄不卡| 欧美一区午夜视频在线观看| 欧美日韩国产小视频| 精品国产乱码91久久久久久网站| 中文字幕欧美国产| 无码av中文一区二区三区桃花岛| 国内成人精品2018免费看| 91免费视频大全| 久久久久久久久久久99999| 亚洲最快最全在线视频| 国产成人av电影在线播放| 制服丝袜国产精品| 亚洲三级在线看| 国产精品一二三四五| 91精品视频网| 精品中文字幕一区二区小辣椒| 成人精品视频网站| 在线不卡中文字幕播放| 中文字幕亚洲区| 国产精品夜夜爽| 精品欧美一区二区在线观看| 天堂一区二区在线免费观看| 在线欧美一区二区| 日韩一区有码在线| 成人动漫在线一区| 中文字幕中文字幕一区二区| 国产一区二区在线看| 精品国精品国产| 麻豆免费看一区二区三区| 在线观看91精品国产麻豆| 午夜精品久久久久久久99水蜜桃 | 亚洲国产精品精华液2区45| 国产在线精品免费av| 精品国产一区二区精华| 韩国一区二区视频| 国产日韩欧美精品一区| 国产+成+人+亚洲欧洲自线| 久久久777精品电影网影网| 丰满白嫩尤物一区二区| 国产精品高清亚洲| 在线视频综合导航| 日韩高清不卡一区二区三区| 欧美精品粉嫩高潮一区二区| 蜜桃视频在线观看一区二区| www激情久久| 91香蕉视频在线| 香港成人在线视频| 久久综合久久久久88| 99re亚洲国产精品| 精品日韩一区二区三区| 亚洲成人资源在线| 欧美成va人片在线观看| 成人中文字幕合集| 亚洲在线成人精品| 日韩精品一区二区三区中文不卡 | 精品国产污网站| 成人av网站免费观看| 亚洲美女精品一区| 欧美一区二区三区视频免费播放| 久草中文综合在线| 亚洲欧美在线视频观看| 欧美精品黑人性xxxx| 国产成人亚洲精品青草天美| 国产精品白丝在线| 欧美日韩国产一二三| 国产ts人妖一区二区| 欧美精选一区二区| 国产91富婆露脸刺激对白| 久久久久亚洲蜜桃| 成人黄色综合网站| 亚洲成av人片在线观看| 久久免费电影网| 一本色道久久综合狠狠躁的推荐 | 这里只有精品电影| 成人午夜免费电影| 日韩成人精品视频| 一级女性全黄久久生活片免费| 精品剧情在线观看| 欧美日韩亚洲高清一区二区| 国产不卡视频一区| 免费观看一级特黄欧美大片| 亚洲欧美视频一区| 国产精品网站导航| xnxx国产精品| 久久97超碰国产精品超碰| 欧美日韩在线不卡| 成人午夜视频福利| 日本伊人精品一区二区三区观看方式| 精品黑人一区二区三区久久| 日韩一区二区三区精品视频| 91女神在线视频| 午夜精品免费在线观看| 中文字幕欧美日韩一区| 在线综合视频播放| 一本色道久久综合亚洲aⅴ蜜桃| 蜜桃精品视频在线观看| 亚洲综合一二区| 1024精品合集| 亚洲国产成人午夜在线一区| 日韩欧美三级在线| 欧美伦理电影网|