У меня есть функция, которая принимает анонимную функцию в качестве аргумента и устанавливает ее для переменной (области) для справки. Затем я пытаюсь выполнить другую функцию с этой ссылкой, но она, очевидно, завершается сбоем, поскольку эта функция находится вне области действия.
Мне было интересно, если бы кто-нибудь знал о простом способе передачи анонимной функции прямо как анонимной функции, избегая вопроса об ограничении?
EDIT : Для пояснения, элемент 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.