js 模擬實現EventBus

2022-07-02 15:00:12 字數 1302 閱讀 6390

文章原文:

eventbus 幾個常用方法如下:

這裡用map 儲存 eventbus 的資料,map 的模擬實現 可以看

示例**如下:

let eb = new eventbus()

eb.on('event1', test1)

eb.emit('event1', '第一次')

eb.off('event1', test1)

eb.emit('event1', ['第二次1', '第二次2'])

eb.once('once', test4);

eb.emit('once', '執行一次', 1, 2, 3)

模擬實現**如下:

class eventbus 

// on 監聽

on(type, fn) else if (handler && typeof handler === 'function') else

}// emit 觸發

emit(type, ...args) else

}} else else

}return true

}// off 移除監聽

off(type, fn) else

}// 單次執行

once(type, fn)

this.on(type, handler)

}} // 下面是 測試**

function test1 (...params)

function test2 (...params)

function test3 (...params)

function test4 (...params)

//測試用例

let eb = new eventbus()

eb.on('event1', test1)

eb.on('event1', test2)

eb.on('event1', test3)

eb.emit('event1', '第一次')

eb.off('event1', test1)

eb.emit('event1', ['第二次1', '第二次2'])

eb.once('once', test4);

eb.emit('once', '執行一次', 1, 2, 3)

console 輸出結果如下:

js模擬實現雜湊表

在演算法中,尤其是有關陣列的演算法中,雜湊表的使用可以很好的解決問題,所以這篇文章會記錄一些有關js實現雜湊表並給出解決實際問題的例子。說明 這篇部落格所寫並不是真正意義的雜湊表,只是與雜湊表的使用有相似之處。屬性的列舉 var person for var prop in person 輸出 即對...

模擬實現js的new

目錄new是什麼 一句話介紹new new運算子建立乙個使用者自定義的物件型別的例項,或者具有建構函式的內建物件型別之一。看下下面的 來了解new操作符都做了什麼事情 class constructor function person name,age 每個函式都有prototype物件屬性 在類的...

模擬實現instanceof的功能 js

typeof是用來判斷資料型別的,就乙個引數 使用方式像這樣 typeof num,就是判斷num是什麼型別 typeof 一般只能返回如下幾個結果 number string boolean object function 和 undefined 著重看這幾個 物件,陣列 都是引用型別 使用typ...