我认为它们都允许您控制'this'的值,但除此之外,我还有点不清楚,Google/SO目前也没有提供太多帮助。感谢任何澄清。我确实找到了这个,但我对它是否讲述了整个故事持怀疑态度:
“当我第一次了解jQuery的proxy()方法时,我觉得它有点傻;毕竟,Javascript已经有了call()和apply()方法来改变执行上下文。但是,一旦你意识到jQuery的proxy()方法允许您轻松地绑定()和解绑()事件处理程序而不受上下文的影响,就会明显地看出这个方法有多么强大。”
“当我第一次了解jQuery的proxy()方法时,我觉得它有点傻;毕竟,Javascript已经有了call()和apply()方法来改变执行上下文。但是,一旦你意识到jQuery的proxy()方法允许您轻松地绑定()和解绑()事件处理程序而不受上下文的影响,就会明显地看出这个方法有多么强大。”
$(this).attr('id')
而不是this.id
是好的。我没有看过$.proxy
,但它很可能也是一样:冗余且无意义的。 - Niet the Dark Absol.proxy
实际上是bind
的一个 polyfill(即“创建一个绑定到给定上下文的新函数”)。apply
只是实现这一目的的手段。因此,将.proxy
与apply
/call
进行比较是没有意义的。 - Yoshi$.proxy()
和新版浏览器中的.bind()
API之间进行。(不要与jQuery的.bind()
混淆,因为它现在已经被弃用,推荐使用.on()
代替。) - Pointy