摘要:前幾天一哥們,去面試遇到到一個用原生編寫的事件監(jiān)聽,原題是這樣子滴分割線然后就興致勃勃的去看一下,大神的可以直接忽略,就希望幫到一小部分的人就很開心啦簡單原理就是往里面的掛載一個函數(shù),然后在里面調(diào)用這個函數(shù),這么一說是不是覺得很簡單好直接上
前幾天一哥們,去面試遇到到一個用原生js 編寫的事件監(jiān)聽,
原題是這樣子滴!
function EventDispatcher() { } /** * @param {string} eventStr * @param {Function} callBack * */ EventDispatcher.prototype.addEventListener = function(eventStr, callBack) { }; /** * @param {string} event * @param {*=} body * */ EventDispatcher.prototype.dispatchEvent = function(event, body) { }; var d = new EventDispatcher(); function callback(e) { console.log(‘callback fired’); console.log(‘Event body: ’+e.body); } d.addEventListener(‘testEvent’, callback); d.dispatchEvent(‘testEvent’, ‘testMessage’); //expexted console output: //callback fired //Event body: testMessage
---------------分割線------------------
然后~~~就興致勃勃的去看一下,大神的可以直接忽略,
就希望幫到一小部分的人~~就很開心啦!
簡單原理就是往addEventListener 里面的type掛載一個函數(shù),然后在dispatchEvent里面調(diào)用這個函數(shù),這么一說是不是覺得很簡單???
好 直接上代碼?。?!
function EventDispatcher() { this.events = {}; } EventDispatcher.prototype.addEventListener = function(type, handler) { if (typeof handler != "function") return; this.events[type] = handler; }; EventDispatcher.prototype.dispatchEvent = function(type, body) { var e = {}; e.body = body; this.events[type](e); }; var d = new EventDispatcher(); d.addEventListener("testEvent", function(e){ console.log("callback fired-----" + e.body); }); d.dispatchEvent("testEvent", "213123123");
完畢 收工(總覺得有點(diǎn)像訂閱發(fā)布的意思2333)~~
很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~很無恥的湊字?jǐn)?shù)~~~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/79668.html
摘要:是一款輕量級易擴(kuò)展的播放器,是為解決一些中小型的視頻業(yè)務(wù)場景。同時各插件由于是面向的播放器接口,插件不知道插件的存在,因此能極大地降低各插件功能間的耦合。 larkplayer 是一款輕量級 & 易擴(kuò)展的 html5 播放器,是為解決一些中小型的視頻業(yè)務(wù)場景。這些業(yè)務(wù)不一定需要大而全的解決方案,并且他們往往有自己的定制化需求。 背景 為什么要編寫 larkplayer?(注意,這里面有...
摘要:是一款輕量級易擴(kuò)展的播放器,是為解決一些中小型的視頻業(yè)務(wù)場景。同時各插件由于是面向的播放器接口,插件不知道插件的存在,因此能極大地降低各插件功能間的耦合。 larkplayer 是一款輕量級 & 易擴(kuò)展的 html5 播放器,是為解決一些中小型的視頻業(yè)務(wù)場景。這些業(yè)務(wù)不一定需要大而全的解決方案,并且他們往往有自己的定制化需求。 背景 為什么要編寫 larkplayer?(注意,這里面有...
摘要:取消事件的默認(rèn)行為。阻止事件的派發(fā)包括了捕獲和冒泡阻止同一個事件的其他監(jiān)聽函數(shù)被調(diào)用。 事件模型 DOM0 級事件模型 -沒有事件流,這種方式兼容所有瀏覽器 // 方式一 將事件直接通過屬性綁定在元素上 / 方式二 獲取到頁面元素后,通過 onclick 等事件,將觸發(fā)的方法指定為元素的事件 var btn = document.getElementById(btn) btn....
摘要:組件監(jiān)聽自定義事件。組件觸發(fā)自定義事件。生命周期鉤子函數(shù),后組件的所有的事件監(jiān)聽器會被移除。技術(shù)點(diǎn)總結(jié)組件設(shè)計的思想包括單數(shù)據(jù)流事件中心,核心是組件通信。完善給彈出日期面板和關(guān)閉日期面板增加組件自定義事件即調(diào)用觸發(fā)和事件。預(yù)覽 組件庫官網(wǎng) github地址 如果喜歡各位小哥哥小姐姐給個小星星鼓勵一下哈, 請勿在生產(chǎn)環(huán)境中使用,供學(xué)習(xí)&交流~~ showImg(https://user...
閱讀 1478·2021-09-02 09:53
閱讀 2728·2021-07-29 13:50
閱讀 1772·2019-08-30 11:07
閱讀 1626·2019-08-30 11:00
閱讀 1510·2019-08-29 14:00
閱讀 1911·2019-08-29 12:52
閱讀 2626·2019-08-29 11:11
閱讀 3483·2019-08-26 12:23