在这个提交中有一个我无法解释的变化
deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
变成
deferred.done( arguments ).fail( arguments );
AFAIK,当您将函数作为某个对象的成员调用时,函数obj.func()内部this是绑定到的obj,因此apply()仅通过绑定this到调用函数是没有用的obj。相反,根据评论,这是必需的,因为之前的一些$.Callbacks.add实施。
我的疑问不是关于 jQuery,而是关于 Javascript 语言本身:当你调用一个类似 的函数时obj.func(),怎么可能里面func()的this关键字没有绑定到obj?