在小程序环境中是不能偷懒了,需要把之前的代码改写一下。要把 Page 对象也传给调度中心保存起来,作为回调函数调用时的上下文对象。
代码:
//event.jsclassEvent{ style="color: #333333; font-weight: bold;">if (typeof fn != "function") { console.error('fn must be a function') return } this._stores = this._stores || {} ;(this._stores[event] = this._stores[event] || []).push({cb: fn, ctx: ctx}) } emit (event) { this._stores = this._stores || {} var store = this._stores[event], args if (store) { store = store.slice(0) args = [].slice.call(arguments, 1) for (var i = 0, len = store.length; i < len; i++) { store[i].cb.apply(store[i].ctx, args) } } } off (event, fn) { this._stores = this._stores || {} // all if (!arguments.length) { this._stores = {} return } // specific event var store = this._stores[event] if (!store) return // remove all handlers if (arguments.length === 1) { delete this._stores[event] return } // remove specific handler var cb for (var