多くのコールバックを使用するJavaScriptアプリケーションがあります。典型的な関数はコールバックをとり、別のコールバックでラップします。上記の例を考えるとcall()と関数を直接呼び出すのはいつ使うべきですか?
Namespace.foo = function(arg, their_on_success) {
var my_on_success = function(result) {
console.log('my_on_success() called');
if('function' === typeof their_on_success) {
their_on_success(result);
}
}
something(arg, my_on_success);
};
、ときではなくtheir_on_success()
を呼び出し、関数呼び出しを経由して結果を渡すよりも、このようなセットアップたちネイティブcall()
方法(第二引数として結果VARを渡す)する必要がありますか?あなたが関数内でthis
の値を設定したい場合はcall
(またはapply
)を使用する
var obj = {a: 0};
method.call(obj, "parameter");
function method(para) {
this.a == 0; // true <-- obj is now this
}
'apply'の主なケースは、可変引数を扱うときです。そのため、単に' arguments'を渡すことができます。 –