JS中的建構函式及繼承

2021-09-25 08:27:16 字數 1573 閱讀 5469

一 js中的建構函式

1. 物件導向物件的建立方式:a.通過new object();

var stu=new

student();

b.字面量建立物件

var p=

};

c.先定義物件,後新增資料

varperson=;

person.name=」張三「;

person.sge=23;

建構函式

a. 作用:是初始化物件;

b. 建立;工廠模式的建立

eg: 

function

person()

function

person(name,***,age)

出現問題: 功能相同 ** 重複再記憶體**現(占用記憶體) 資源浪費

解決問題:

a. 解決問題: ​ 將sayhello() 這個函式 設定為全域性的 函式 在建構函式中 引用就可以.

b. 使用原型 解決建構函式的問題

什麼是原型

a. 在定義建構函式的時候 , 就會預設的建立乙個 空的 『原型屬性』

b. 在建構函式 呼叫時 就會預設建立

c. (1)神秘物件與建構函式 - 神秘物件就是建構函式的 「原型屬性」 - 簡稱原型 (建構函式的原型)

(2) 神秘物件與建構函式所建立出來的物件 - 神秘物件針對建構函式建立出來的物件稱為 「原型物件」 - 簡稱原型 (物件的原型)

d. 原型的使用:i.利用原型物件的動態屬性給原型物件新增成員

eg:person.prototype.type=」型別」;

ii.直接替換原型物件

原型使用注意事項

結論:

1,使用物件訪問屬性的時候,如果在本身內找不到就會去原型中找

但是 使用 點 語法 進行屬性賦值的時候,並不會去原型中進行查詢

使用點語法賦值的時候,如果物件中不存在該屬性,就會給該物件新增該屬性,而不會去修改原型中的

2,繪製三角形解釋

如果在原型中 的屬性是引用型別 的屬性那麼所有物件共享該屬性,並且乙個物件修改了該引用屬性型別屬性中的成員,其他成員訪問的也都是修改後的結果

二.js中的繼承

什麼是繼承

繼承 是指一種關係,是類與類之間的關係, 但是js中沒有類這個概念,js是通過建構函式模擬類. 然後通過原型 來實現

js繼承基於物件

a.  直接遍歷父物件的屬性,將所有的屬性新增到當前物件上

b. 可以通過更改建構函式的原型屬性來實現繼承。

3.原型繼承.

每乙個建構函式都有prototype原型屬性,通過建構函式建立出來的物件都繼承自該原型屬性。所以可以通過更改建構函式的原型屬性來實現繼承。

4.是什麼原型鏈 ?

每個建構函式都有原型物件 每個物件都有建構函式

每個建構函式的原型都是乙個物件 那麼這個原型物件也會有建構函式 那麼這個原型物件的建構函式也有原型物件 這樣就會形成乙個鏈式結構,稱之為 原型鏈

js 建構函式 原型繼承

定義所有飛行物的父型別的建構函式 function flyer fname,fspeed flyer.prototype.fly function 1 構造繼承 定義第一種飛行物 bee,繼承並擴充套件父型別flyer 使用父類的建構函式來增強子類例項,等於是複製父類的例項屬性給子類 沒用到原型 f...

JS高階 原型 建構函式的繼承

定義父類的person的建構函式 function person name 定義父類person的原型 person.prototype.sayname function 定義子類建構函式student function student name,age 子類繼承父類原型 子類student原型繼承...

JS物件導向 建構函式 繼承

繼承 子類繼承父類的屬性和方法 好處 減少 量,公共的父類可以復用.降低耦合度.js裡實現繼承的方法 1.通過改變構造建構函式中物件的指向實現繼承 2.通過原型鏈實現繼承.function animal function cat var cat new cat new出乙個例項改變呼叫物件的方法 1...