名前付き関数を呼び出さずにパラメーターを指定して渡すにはどうすればよいですか。
現在、私が持っている唯一の解決策はハックのようですが、名前付き関数を呼び出す名前のない関数を渡すことです。
callback(function(){foo(params);})
これを行うより良い方法はありますか?
名前付き関数を呼び出さずにパラメーターを指定して渡すにはどうすればよいですか。
現在、私が持っている唯一の解決策はハックのようですが、名前付き関数を呼び出す名前のない関数を渡すことです。
callback(function(){foo(params);})
これを行うより良い方法はありますか?
別の無名関数で呼び出しをラップするコードはまったく問題なく、Javascript で広く使用されているパターンです。
匿名関数を削除したい場合は、代わりにbind()
メソッドで関数への参照を使用できます。これを試して:
callback(foo.bind(this, params));
いいえ、それを行うにはいくつかの方法がありますが、あなたが持っている方法が最も人気があります. 私はそれがハッキーに感じるのを知っていますが、それはそうです。
あなたもできる
callback(foo.bind(this, params));
関数を渡してJavascript apply
/call
関数を使用することもできます
callback(myFunc);
ここで、コールバックは次のように定義されます。
function callback(func, params) {
func.apply(null, params);
}
詳細については、MDN の Apply メソッドのドキュメントを参照してください。