当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。
最简单的例子,比如给元素添加事件监听
documentElement.addEventListener('click', function (event) {})
全局EventBus写法
var Event = (function () {var clientList = {}var listen = function (key, fn) {if (!clientList[key]) {clientList[key] = []}clientList[key].push(fn)}var trigger = function () {var key = Array.prototype.shift.call(arguments)var fns = clientList[key]if (!fns || fns.length === 0) {return false}for (var i = 0; i < fns.length; i++) {fns[i].apply(this, arguments)}}var remove = function (key, fn) {var fns = clientList[key]if (!fns) {return false}if (!fn) {fns.length = 0} else {var index = fns.findIndex(e => e === fn)fns.splice(index, 1)}}return {listen,trigger,remove}})()
