物件建立模式

2021-10-07 22:56:03 字數 2301 閱讀 9589

方式一: object建構函式模式

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

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

問題: 語句太多

var ob =

newobject()

; ob =

; ob.name =

"凌月"

; ob.age =18;

ob.setname

=function

(name)

ob.setage

=function

(age)

ob.name=

"鳳千羽"

; ob.age=22;

console.

log(ob.name,ob.age)

;

方式二: 物件字面量模式

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

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

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

var ob=

, setage :

function

(age)

}

console.

log(ob.name,ob.age)

;var ob2=

, setage :

function

(age)

} document.

write

(ob2.name,

"\n"

+ob2.age)

;

方式三: 工廠模式

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

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

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

// 工廠函式: 返回乙個需要的資料的函式

function

creatperson

(name, age)

, setage:

function

(age)

}return ob;

}var p =

creatperson

("鳳千羽",22

);var p2 =

creatperson

("凌月",18

) console.

log(p)

; console.

log(p2)

;

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

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

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

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

function

person

(name, age)

this

.setage

=function

(age)

}var p =

newperson

("鳳千羽",22

);var p2 =

newperson

("凌月",18

) console.

log(p)

; console.

log(p2)

; console.

log(p instanceof

person

)

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

套路: 自定義建構函式, 屬性在函式中初始化, 方法新增到原型上

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

function

person

(name, age)

person.prototype.

setage

=function

(age)

}var p =

newperson

("鳳千羽",22

);var p2 =

newperson

("凌月",18

) console.

log(p)

; console.

log(p2)

; console.

log(p instanceof

person

)

「物件建立」模式

定義 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 從而支援物件的穩定。它是介面抽象之後的第一步工作。在軟體系統中,經常面臨著建立物件的工作 由於需求的變化,需要建立的物件的具體型別經常變化。如何應對這種變化?如何繞過常規的物件建立方法 new 提供一種 ...

」物件建立」模式 工廠模式

物件建立 模式 通過 物件建立 模式繞開new,來避免物件 new 過程中所導致的緊耦合 依賴具體類 從而支援物件建立的穩定,他是介面之後的第一步工作 典型模式 factory method abstract factory prototype builder 動機在軟體系統中,經常面臨著建立物件的...

JS物件建立模式

1 var person new object 23 person.name name 4 person.age 43 56 console.log person 1 套路 先建立空object物件,再動態新增屬性 方法 2 適用場景 起始時不確定物件內部資料 3 問題 語句太多 1 var per...