我有一个函数,它接受一个匿名函数作为参数并将其设置为一个变量(范围)以供参考。然后我尝试使用该引用执行另一个函数,但它显然失败了,因为该函数超出了范围。
我想知道是否有人知道将匿名函数作为匿名函数直接传递的简单方法,避免范围问题?
编辑:为了澄清, el 元素是在函数与参数列表隔离后定义的。此外,el 元素也是参数列表的一部分。如果只有我使用此代码,我可能会使用两个参数列表,第二个参数是数组或哈希对象,但不幸的是,此代码将被一些不太熟悉 JS 甚至编码的人使用对于这个问题。
谢谢您的帮助!
这是我的代码的相关部分:
locate : function(){
if ((!arguments)||(!arguments.length)) return;
arguments = [].splice.call(arguments,0); //This just converts arguments into an array
for (var i=0;i<arguments.length;i++){
if (typeof(arguments[i])=='function'){
var tf = arguments.splice(i,1);
break;
};
};
if (!tf) return;
JAS.Globals.eventListen('click',el,tf);
}
这是缩写的,所以只要相信 el 已定义。JAS.Globals.eventListen 只是一个智能的 addEventListener。