JS觀察者模式的學習

2021-09-02 17:41:12 字數 687 閱讀 2123

(一)觀察者模式的使用背景

在js中,如果出現資料作用域問題,乙個作用域是不能直接拿到另乙個作用域中的資料的,為了實現不同中的相互取值問題,可以借用觀察者模式。

(二)觀察者模式的實現思想

既然是想實現不同作用域間的相互取值,那麼,就需要給不同作用域間建立聯絡的橋梁,建立公共物件。然後在想丟擲資料的作用域中使用event .emit(「eventname」,vals)丟擲值,在想取得資料的作用域中使用event .on(「eventname」,(vals)=>)監聽資料的變化。

(三)實現**

var event = ,

//封裝事件監聽方法,e為事件名,如果事件不存在,則事件等於cb

on(e, cb) else

},//丟擲資料,e為事件名,..rest為上傳的資料(...會讓資料變成陣列形式)

emit(e, ...rest) );

event.objarr[e].foreach((cb) => );

},destroyed(e)

}function a() , 1000)

}function b() )

}function c() )

}a()

b()c()

Js 觀察者模式

function eventtarget eventtarget.prototype this.handlers type push handler fire function event if this.handlers event.type instanceof array removehand...

JS 觀察者模式

被觀察者 function observed 將observer註冊到observed上 observed.prototype.attach function s 產生新狀態 observed.prototype.setstate function newstate 觀察者 function obs...

js 觀察者模式

觀察者模式定義一種一對多的關係,多個觀察者訂閱乙個主題物件,當主題物件發生改變的時候通知所有觀察者,使他們能實現更新。具體實現方式 定義乙個被觀察物件,定義乙個主題陣列,觀察者訂閱主題通過往陣列物件內新增 函式來實現,當主題發生改變時輪流呼叫 函式。var subpub this.topics to...