let event = {
list: [],
listen: function(key, fn) {
if(!this.list[key]) {
this.list[key] = [];
}
shopObj.list[key].push(fn);
},
publish: function() {
let key = arguments[0];
let fns = this.list[key];
for(let i=0, fn; fn = fns[i++];) {
fn.apply(this, arguments);
}
}
}
let initEvent = function (obj) {
for (let i in event) {
obj[i] = event[i];
}
}
let shopObj = {};
initEvent(shopObj);
shopObj.listen('huawei', function(brand, model){
console.log(`A订阅: ${brand}的${model}`);
})
shopObj.listen('apple', function(brand, model){
console.log(`B订阅: ${brand}的${model}`);
})
shopObj.publish('huawei', 'P30');
shopObj.publish('apple', 'iphone 12');
console