這是代碼的一些代碼:看不慣Observer模式
var Event=(function(){
var clientList={},listen,trigger,remove;
listen=function(key,fn){
/*some code*/
};
trigger:function(){
var key=Array.prototype.shift.call(arguments);
fns=clientList[key];
if(!fns||fns.length==0){
return false;
}
for(var i=0,fn;fn=fns[i++];){
fn.apply(this,arguments);
}
};
remove:function(key,fn){
var fns=clientList[key];
if(!fns){
return false;
}
if(!fn){
fns&&(fns.length=0)
}else{
for(var l=fns.length-1;l>=0;l--){
var _fn=fns[l];
if(_fn===fn){
fns.splice(1,1);
}
}
}
};
/*some code*/
})();
我不明白爲什麼var key=Array.prototype.shift.call(arguments);
除了傳遞參數和fns&&(fns.length=0)
代替fns.length=0
?如果您能回答我的問題,我將非常感激。
一種形式,你可以查看更多... HTTP://stackoverflow.com/questions/3358622/observer-design-pattern-vs-listeners RQ = 1 –