在这个提交中有一个我无法解释的变化
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
?