let storeObj = {};
storeObj.list = [];
storeObj.listen = function(key, fn) {
if(!this.list[key]){
this.list[key] = [];
}
this.list[key].push(fn)
}
storeObj.trigger = function(){
let key = Array.prototype.shift.call(arguments)
console.log(key)
let fns = this.list[key]
if(!fns || fns.length <= 0){
return;
}
for(let i = 0, fn; fn= fns[i++];){
fn(...arguments)
}
}
storeObj.listen('小明',function(size){
console.log(`您订阅的尺码:${size},有库存了`)
})
storeObj.listen('小张',function(name,size){
console.log(`您订阅的尺码:${size},有库存了`)
})
storeObj.remove = function(key,fn){
let fns = this.list[key];
if(!fns){
return false;
}
if(!fn){
fn && (fns.length = 0);
}else {
for(var i = fns.length-1;i>=0;i--){
var _fn = fns[i];
if(_fn == fn){
fns.splice(i,1);
}
}
}
}
storeObj.trigger("小明",34)
storeObj.trigger("小张",28)
let Event = (function(){
let list = {},
listen,
trigger,
remove;
listen = function(key, fn) {
if(!list[key]){
list[key] = [];
}
list[key].push(fn)
}
trigger = function(){
let key = Array.prototype.shift.call(arguments)
console.log(key)
let fns = list[key]
if(!fns || fns.length <= 0){
return;
}
for(let i = 0, fn; fn= fns[i++];){
fn(...arguments)
}
}
remove = function(key,fn){
let fns = list[key];
if(!fns){
return false;
}
if(!fn){
fn && (fns.length = 0);
}else {
for(var i = fns.length-1;i>=0;i--){
var _fn = fns[i];
if(_fn == fn){
fns.splice(i,1);
}
}
}
}
})();