javascript原型鏈理解

2021-08-22 00:01:18 字數 1202 閱讀 7716

1.在oo語言中,繼承的方式支援兩種:介面繼承與實現繼承。

介面繼承:繼承方法簽名,實現繼承:繼承實際方法。

但是 在ecmascript中沒有方法簽名,無法實現介面繼承,只支援實現繼承,而實現繼承主要是依靠原型鏈來實現。

2.原型鏈基本思路:

利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。

每個建構函式都有乙個原型物件,原型物件都包含乙個指向建構函式想指標(constructor),而例項物件都包含乙個指向原型物件的內部指標(__proto__)。如果讓原型物件等於另乙個型別的例項,此時的原型物件將包含乙個指向另乙個原型的指標(__proto__),另乙個原型也包含著乙個指向另乙個建構函式的指標(constructor)。假如另乙個原型又是另乙個型別的例項……這就構成了例項與原型的鏈條。

3.基本圖譜

4.動手驗證:

輸出如下:

可以看出 分為兩塊繼承 ,一是物件本身繼承(用call實現),與原型繼承(用object.create 實現);

去掉   son.prototype=object.create(father.prototype); son.prototype.constructor = son; 原型繼承這一條,會報錯

可以看出,a的原型裡沒有show方法;

es6 繼承

function a()

show(), 今年$歲`);}};

class son extends father{};

let son = new son('金角大王', 200);

son.show();//return 我叫:金角大王, 今年200歲

console.log(son)

};a();

輸出:

理解JavaScript原型鏈

主要是利用了 proto 這個隱式原型將所有的繼承串在了一起,實現了原型鏈 下面是乙個new itemtest 的例項,它的 proto 就指向了繼承的itemtest的prototype,然後再向上 proto 就是test的prototype,由此構成了原型鏈 ecmascript將原型鏈作為實...

深入理解JavaScript的原型 原型鏈與繼承

在介紹原型是什麼之前,首先需要知道原型是做什麼用的,在js高設書中,明顯可以看到介紹有關原型的知識是在介紹建立物件的方式時提出來的,即使用原型模式來建立物件,顯而易見,原型這個概念是與建立物件聯絡在一起的。當然,建立物件的方式有很多種,如工廠模式,建構函式模式,以及與原型模式有關的其他模式等。我們建...

JavaScript原型以及原型鏈

原型物件的用途是為每個例項物件儲存共享的方法和屬性,它僅僅是乙個普通物件而已。並且所有的例項是共享同乙個原型物件,因此有別於例項方法或屬性,原型物件僅有乙份。在訪問乙個物件的屬性的時候,首先在當前物件中找,如果沒有在其原型物件找 復用的內容放在prototype,讓類的例項擁有相同的功能 小紅書上的...