關於js原型和繼承的方法複習

2021-08-07 16:44:29 字數 1310 閱讀 1075

1.首先我們先來看幾個概念。

封裝:將描述同乙個東西的屬性和方法,定義在乙個物件中。

繼承:父物件中的屬性和方法,子物件可以直接使用。

多型:同乙個物件,在不同情況下,呈現不同的狀態。

2.如何定義建構函式?

function  建構函式名(引數...) }

接下來是利用這個建構函式建立物件:

var obj=new  建構函式名(引數...)

3.js中一切繼承都是利用原型物件實現的,

原型物件:每個函式都有乙個原型物件,而建構函式的原型物件負責儲存所有子物件共享的成員。

因此所有子物件共享的方法,都應該定義在建構函式的原型物件中。

4.我們來看幾個方法。

(1).判斷自有屬性:obj.hasownprooerty("屬性名")

(2).獲得任意物件的父級原型物件:object.getpropertyof(子物件)

(3).判斷乙個prototype物件是否存在於另乙個物件的原型鏈中:父物件.isprototypeof(子物件)   返回布林值

5.例子,下面我們來看乙個關於繼承的例子,不多說,直接上**,注釋很清晰。

functionflyer(fname,speed)

}}varbird=newflyer("小鳥"

,40);

//例項化上面的建構函式,並且傳入引數,注意用

newbird.fly();

//呼叫建構函式裡面的

fly方法

functionplane(fname,speed,capacity)

this.capacity=capacity;

//定義自己的

capacity

屬性if((!plane.prototype.hasownproperty("fly")))

}}vara380=newplane("a380"

,1000

,555);

//例項化

plane

方法a380.fly();

//呼叫

plane

裡面的fly

方法,如果自己的原型有則用自己的,否則會用

flyer

建構函式裡面的

JS複習 繼承 原型鏈

繼承 介面繼承和實現繼承。介面繼承只繼承方法簽名,而實現繼承則繼承實際的方法。由於函式沒有簽名,在esmascript中無法實現介面繼承。esmascript只支援實現繼承,而且其實現繼承主要是依靠 原型鏈來實現的。原型鏈 基本思想 利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。建構函式 原...

關於js原型繼承

js的每個類都有乙個prototype物件 訪問物件的屬性時,會先訪問到物件自身是否有定義這個屬性 如果沒有定義,就會去訪問物件所屬型別的prototype物件是否有此屬性 原型繼承就是把型別的prototype指向乙個父類的新物件,這樣每派生乙個新類出來都會構造乙個新的父類物件作為原型,這個物件和...

關於js原型鏈繼承的一些複習

1 function person name,age 7 89 person.prototype.race function 12 13 let a new person wangwu 99 14console.log a.age 15a.run 16 a.race 1.靜態繼承 person.si...