面試題

function Event() {
  this._events = {};
}
// 綁定事件方法
Event.prototype.on = function (eventType, callback) {
  // 如果事件不存在
  if (!this._events[eventType]) {
    // 創(chuàng)建事件存起來,值為空數(shù)組
    this._events[eventType] = [];
  }
  // 將事件回調(diào)函數(shù)添加進(jìn)去
  this._events[eventType].push(callback);
};
// 解綁事件方法
Event.prototype.off = function (eventType, callback) {
  this._events[eventType] = this._events[eventType].filter((item) => item !== callback); //將返回的數(shù)組接住起到刪除的作用
};
// 觸發(fā)事件方法
Event.prototype.emit = function (eventType, data) {
  this._events[eventType].forEach((callback) => callback(data));
};
// 綁定一次性事件方法
Event.prototype.once = function (eventType, callback) {
  const that = this;
  // 如果事件不存在
  if (!this._events[eventType]) {
    // 創(chuàng)建事件存起來,值為空數(shù)組
    this._events[eventType] = [];
  }
  const newFn = function () {
    // 調(diào)用一次
    callback();
    // 解綁事件
    that.off(eventType, newFn);
  };
  // 將事件回調(diào)函數(shù)添加進(jìn)去
  this._events[eventType].push(newFn);
};
const event = new Event();
event.once('click', function () {
  console.log(111);
});
event.on('click', function () {
  console.log(222);
});
const callback = function () {
  console.log(333);
};
event.on('click', callback);
event.emit('click');
event.off('click', callback);
event.emit('click');
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 自媒體撈錢的模式看似多樣化,其實(shí)本質(zhì)的套路依舊是圍繞著“賣”字展開的: 賣廣告/流量 賣產(chǎn)品 賣服務(wù) 賣人脈 而今...
    time剛剛好閱讀 12,043評論 34 438
  • 一個(gè)女人。 默默地做事。 她是淌過男人河的女人。 她是厭倦了愛情,厭倦了男人。 她開始為自己而活,每天打扮得漂漂亮...
    水星1975閱讀 203評論 0 2
  • 話說我住在嵩山腳下,古時(shí)四大書院之一的嵩陽書院就在這里。有次帶著兒子去感受一下歷史吧。有一個(gè)展覽室,里面的照片是...
    愚人傳說閱讀 215評論 0 2
  • 一、大致思路 只統(tǒng)計(jì)主要人物的詞云,并顯示出人物出場次數(shù)最多的前10位和對應(yīng)次數(shù) 主要人物寧國府:賈珍、尤氏(珍大...
    小伙在杭州閱讀 3,400評論 1 2

友情鏈接更多精彩內(nèi)容