一突那、構(gòu)造函數(shù)綁定
使用call或apply方法剔交,將父對(duì)象的構(gòu)造函數(shù)綁定在子對(duì)象上铃剔,即在子對(duì)象構(gòu)造函數(shù)中加一行聪姿。Animal.apply(this, arguments);
二芝加、prototype模式
Cat.prototype = new Animal();
Cat.prototype.constructor = Cat; //糾回prototype對(duì)象的constructor值
三查剖、直接繼承
function Animal(){ }
Animal.prototype.species = "動(dòng)物";
將Cat的prototype對(duì)象洁桌,然后指向Animal的prototype對(duì)象荤牍,這樣就完成了繼承
Cat.prototype = Animal.prototype;
Cat.prototype.constructor = Cat;
與前一種方法相比尸折,這樣做的優(yōu)點(diǎn)是效率比較高(不用執(zhí)行和建立Animal的實(shí)例了)啰脚,比較省內(nèi)存。缺點(diǎn)是 Cat.prototype和Animal.prototype現(xiàn)在指向了同一個(gè)對(duì)象实夹,那么任何對(duì)Cat.prototype的修改橄浓,都會(huì)反映到Animal.prototype。
四亮航、非構(gòu)造函數(shù)的繼承
1荸实、使用object()方法
function object(o) {
function F() {}
F.prototype = o;
return new F();
}
var Doctor = object(Chinese);
2、淺拷貝
把父對(duì)象的屬性塞赂,全部拷貝給子對(duì)象泪勒,也能實(shí)現(xiàn)繼承。
function extendCopy(p) {
var c = {};
for (var i in p) {
c[i] = p[i];
}
c.uber = p;
return c;
}
var Doctor = extendCopy(Chinese);
Doctor.career = '醫(yī)生';
alert(Doctor.nation); // 中國
這樣的拷貝有一個(gè)問題宴猾。那就是圆存,如果父對(duì)象的屬性等于數(shù)組或另一個(gè)對(duì)象,那么實(shí)際上仇哆,子對(duì)象獲得的只是一個(gè)內(nèi)存地址沦辙,而不是真正拷貝,因此存在父對(duì)象被篡改的可能讹剔。
3油讯、深拷貝
所謂"深拷貝"详民,就是能夠?qū)崿F(xiàn)真正意義上的數(shù)組和對(duì)象的拷貝。它的實(shí)現(xiàn)并不難陌兑,只要遞歸調(diào)用"淺拷貝"就行了沈跨。
function deepCopy(p, c) {
var c = c || {};
for (var i in p) {
if (typeof p[i] === 'object') {
c[i] = (p[i].constructor === Array) ? [] : {};
deepCopy(p[i], c[i]);
} else {
c[i] = p[i];
}
}
return c;
}
//更改子對(duì)象不會(huì)影響父對(duì)象。
js-繼承
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門慧瘤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戴已,“玉大人,你說我怎么就攤上這事碑隆」Ф福” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵上煤,是天一觀的道長休玩。 經(jīng)常有香客問我,道長劫狠,這世上最難降的妖魔是什么拴疤? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮独泞,結(jié)果婚禮上呐矾,老公的妹妹穿的比我還像新娘。我一直安慰自己懦砂,他們只是感情好蜒犯,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荞膘,像睡著了一般罚随。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上羽资,一...
- 文/蒼蘭香墨 我猛地睜開眼翰萨,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了趾疚?” 一聲冷哼從身側(cè)響起缨历,我...
- 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糙麦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丛肮,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡赡磅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宝与。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焚廊。...
- 正文 年R本政府宣布袒餐,位于F島的核電站,受9級(jí)特大地震影響谤狡,放射性物質(zhì)發(fā)生泄漏灸眼。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一墓懂、第九天 我趴在偏房一處隱蔽的房頂上張望焰宣。 院中可真熱鬧,春花似錦捕仔、人聲如沸匕积。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽闪唆。三九已至,卻和暖如春斜做,著一層夾襖步出監(jiān)牢的瞬間苞氮,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長得像贷帮,于是被迫代替她去往敵國和親戚揭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 1:原型繼承 為了讓子類繼承父類的屬性(也包括方法)沃但,首先需要定義一個(gè)構(gòu)造函數(shù)磁滚。然后,將父類的新實(shí)例賦值給構(gòu)造函數(shù)...
- 這個(gè)系列的第一部分垂攘,主要介紹了如何"封裝"數(shù)據(jù)和方法,以及如何從原型對(duì)象生成實(shí)例淤刃。 今天要介紹的是晒他,對(duì)象之間的"繼...
- 發(fā)動(dòng)機(jī) (1)按照所用燃料分類 內(nèi)燃機(jī)按照所使用燃料的不同可以分為汽油機(jī)和柴油機(jī)。使用汽油為燃料的內(nèi)燃機(jī)稱為汽油機(jī)...