let shopObj = {};
shopObj.list = [];
shopObj.listen = function(key, fn) {
if(!this.list[key]) {
this.list[key] = [];
}
shopObj.list[key].push(fn);
}
shopObj.publish = function(key) {
let fns = this.list[key];
for(let i=0, fn; fn = fns[i++];) {
fn.apply(this, arguments);
}
}
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