JS 設計模式

2021-10-07 01:58:06 字數 2220 閱讀 6581

解決程式中的某個問題,而特別定義的程式規範

作用同乙個建構函式,生成的例項化物件應該指向的是同乙個物件

基本原理

1,為了不造成全域性變數汙染,使用函式封裝程式,使用閉包來呼叫程式

2,使用閉包,函式的返回值,必須是也是函式

3,通過判斷生成例項化物件.

如果是第一次執行建構函式,生成例項化物件並且返回

之後再執行建構函式,直接返回之前的例項化物件

**規範

1,乙個變數,儲存的是乙個立即執行函式的執行結果

2,立即執行函式返回值是乙個函式

3,在函式中定義建構函式

4,返回值函式中,通過判斷,生成例項化物件,並且返回例項化物件

基本**

const utils =

(function()

setcss

(ele,styleobj)

}setevent

(ele,event,fun)

}// 定義乙個空物件

let obj = undefined;

return

function()

return obj;}}

)();

作用

通過乙個呼叫,執行所有需要執行的程式

觀察者模式

作用用於訂閱—發布訊息

當乙個物件的狀態發生改變,所有依賴於這個物件的物件,都要傳送通知,並且根據程式主動更新資料,主要是解決了主體物件與觀察者物件之間的功能的耦合

核心內容

1,訊息盒子

儲存事件型別和事件處理函式

2,on方法

定義事件型別和事件處理函式

3,emit方法

定義發布訊息

4,off方法

取消關注

5,delete方法

刪除事件型別

**

class

observer

// 繫結事件型別和事件處理函式到訊息盒子中

on(type,fun)

else

}// 執行事件,發布訊息

emit

(type,

...agr)

let event =

;for

(var i =

0; i <= agr.length-

1; i++)}

// 刪除事件處理函式

off(type,fun)

for(

var i =

0; i <=

this

.message[type]

.length-

1; i++)}

}// 刪除整個事件型別

delete

(type)

delete

(this

.message[type]);

}}const obj =

newobserver()

;obj.on(

'bycar'

, fun1)

;obj.on(

'bycar'

, fun1)

;obj.on(

'bycar'

, fun2)

;obj.on(

'bycar'

, fun3)

;obj.on(

'byhouse'

, fun4)

;obj.on(

'byhouse'

, fun5)

;obj.on(

'byhouse'

, fun6)

;obj.

emit

('bycar'

, fun1,fun3)

;obj.

off(

'bycar'

, fun3)

;obj.

off(

'bycar'

, fun1)

;obj.

delete

('bycar');

function

fun1()

function

fun2()

function

fun3()

function

fun4()

function

fun5()

function

fun6()

JS設計模式

什麼是模式?什麼是設計模式?設計模式是解決軟體設計常見問題的可復用方案 什麼是反模式?反模式是一種針對某個特定問題的不良解決方案,該方案會導致槽糕的情況發生 單例模式?皇帝單例模式 var kingsingleton function return 皇帝存在返回皇帝 return instance ...

js 設計模式

1.單例模式 保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點 呼叫乙個類,任何時候返回的都是同乙個例項 class singleton getname static getinstance name return this.instance const instancea singleton...

js 設計模式

廣義上,模式是乙個可以用來產生其他事物的模板或者模型。在軟體開發過程中,模式是指乙個通用問題的解決方案,用抽象化表示和解決一類問題的模板。學習設計模式,有助於寫出可復用和可維護性高的程式 設計模式的原則是 找出 程式中變化的地方,並將變化封裝起來 1.工廠模式 即,函式裡面返回單個物件。缺點就是建立...