性能方面,使用函数数组注册一个单一事件来为每个需要调用的函数调用或只注册一个不同的事件会更好吗?我似乎无法对谷歌注册1个有很多通话或注册多个事件的事件?
找到答案一个例子:
给了这些功能
function doA(){ /* do A */};
function doB(){ /* do B */};
function doC(){ /* do C */};
是它更好地做到这一点
var funcs=[];
funcs.push(doA);
funcs.push(doB);
funcs.push(doC);
$(window).on("resize", function(){
for(var i=0; i<funcs.length; i++){
funcs[i]();
}
});
或本
$(window).on("resize", doA);
$(window).on("resize", doB);
$(window).on("resize", doC);
我在这个例子中使用jQuery,但同样的事情可能是要求纯Javascript。
请注意,这只是一个例子,在我的真实应用程序中,函数/事件在执行过程中被动态添加/删除。
编辑:虽然我同意最好的方法是有一个函数调用其他的,这只是其他两种方法的例子,在其他情况下,也就是说当你不知道提前有多少功能可以用来监听一个事件。在这种情况下,最好是为每个函数设置一个监听器,或者创建一个可以完成调用的全局监听器?
如果没有异步函数,这些函数中获取调用那么你为什么不只需拨打B A内部并调用C B里面,那么你可以有$(窗口).on(“resize”,doA); – mukund
这只是一个例子,在我的真实应用程序中,函数/事件在执行期间被动态添加/删除。 – valepu