匿名関数を引数として受け取り、参照用に変数(スコープ)に設定する関数があります。次に、その参照を使用して別の関数を実行しようとしましたが、その関数がスコープ外であるため、明らかに失敗します。
スコープの問題を回避して、匿名関数を匿名関数として直接渡す簡単な方法を誰かが知っているかどうか疑問に思いましたか?
編集:明確にするために、el要素は関数が引数リストから分離された後に定義されます。さらに、el要素も引数リストの一部です。このコードを私だけが使用する場合は、2つの引数リストを使用し、2番目の引数は配列またはハッシュオブジェクトである可能性がありますが、残念ながら、このコードは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です。