物件導向高階 物件建立與繼承

2021-10-08 18:11:46 字數 963 閱讀 1444

一、物件建立模式

方式一:object建構函式模式

​ 套路:先建立空object物件,再動態新增屬性/方法

​ 適用場景:起始時不確定物件內部資料

​ 問題:語句太多

方式二:物件字面量模式

​ 套路:使用建立物件,同時指定屬性/方法

​ 適用場景:起始時物件內部資料是確定的

​ 問題:如果建立多個物件,有重複**

方式三:工廠模式(每呼叫一次,產生乙個物件)

​ 套路:通過工廠函式動態建立物件並返回

​ 適用場景:需要建立多個物件

​ 問題:物件沒有乙個具體的型別,都是object型別

方式四:自定義建構函式模式

​ 套路:自定義建構函式,通過new建立物件

​ 適用場景:需要建立多個型別確定的物件

​ 問題:每個物件都有相同的資料,浪費記憶體

方式五:建構函式+原型的組合模式

​ 套路:自定義建構函式,屬性在函式中初始化

​ 適用場景:需要建立多個型別確定的物件

二、繼承模式

方式一:原型鏈繼承

​ 套路:

1.定義父型別建構函式 2.給父型別的原型新增方法 3.定義子型別的建構函式

4.建立父型別的物件賦值給子型別的原型 5.將子型別原型的構造屬性設定為子型別

6.給子型別原型新增方法 7.建立子型別的物件:可以呼叫父型別的方法

​ 關鍵:子型別的原型為父型別的乙個例項物件

方式二:借用建構函式繼承(假的)

​ 套路:

1.定義父型別建構函式 2.定義子型別建構函式

3.在子型別建構函式中呼叫父型別構造

​ 關鍵:在子型別建構函式中通過call( )呼叫父型別建構函式

方式三:組合繼承(原型鏈+借用建構函式)

1.利用原型鏈實現對父型別物件的方法繼承

2.利用super( )借用父型別構建函式初始化相同屬性

物件導向高階2 繼承

繼承 var a b a 把a這個物件賦給b這個物件 b.name jack alert a.name 修改了a的值 b for var attr in a b.name jack alert a.name anikin 不會修改a物件的值,這個就是拷貝繼承的核心原理 繼承 子類不影響父類 func...

物件導向 高階

json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...

物件導向高階

public class person public void print public class student extends person 重寫了父類方法 public void print public class demo public class demo 1.不能new這個類,只能靠...