让Javascript函数的注册 - 调用 - 销毁机制更简洁易用
比较常见的一种机制是,定义一个Util对象,再定义它的add,remove,call方法,示例如下:
//把Util在闭包里进行定义( function() {var fns = [],ta;window.Util = function (a){ ta=typeof a; if(ta==='number'){ if(a>0){ if(fns[a-1]){ return fns[a-1].apply(window, Array.prototype.slice.call(arguments,1)); } }else{ delete fns[-a-1]; } }else if(ta==='function'){ return fns.push(a); }};}());// 注册var fnId = Util( function( msg ) { alert( msg ); } );// 调用Util( fnId, 'Hello, World' ); //-> 'Hello, World';// 销毁,在id前面加上负号,既省事,也有语义Util( - fnId);// 销毁后调用,无效果Util( fnId, 'Hello, World' );记得jQuery的万能$不?思路是一致的,我们要:写的更少,做的更多。