16

このコミットには説明できない変更があります

deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );

になる

deferred.done( arguments ).fail( arguments );

の知る限り、 のようなオブジェクトのメンバーとして関数を呼び出すと、関数obj.func()thisは にバインドされるため、 にバインドするためだけにobj関数を呼び出す必要はありません。代わりに、コメントによると、これは以前の実装のために必要でした。apply()thisobj$.Callbacks.add

私の疑問はjQueryについてではなく、Javascript 言語自体obj.func()についてです。func()thisobj

4

5 に答える 5

2

これは、そのように別のオブジェクトから関数を参照することによってのみ可能です

obj2.func = obj.func;
obj2.func(); // 'this' now refers to obj2

var func2 = obj.func;
func2(); // 'this' now refers to the global window object

または、.apply() または .call() を呼び出しthisて、任意のオブジェクトにバインドします。

于 2012-06-25T08:51:48.683 に答える