原谅我的无知,因为我对 jquery 不太熟悉。有没有相当于道场.hitch() http://dojotoolkit.org/reference-guide/1.7/dojo/hitch.html?它返回一个保证在给定范围内执行的函数。
- 编辑 -
根据要求,这是一个示例。我经常使用 hitch 来确保回调在正确的对象中执行。例如,假设我有一个名为的实用方法doSomethingAsync
我向它传递了一个回调函数。通过故障,我可以确保该函数在特定范围内执行,即使实用程序方法执行 ajax 调用等:
expectedScopeObj = {
flag: true,
callback: function(){console.debug(this.flag);},
main: function() {
// without hitch the callback function would not find flag
core.util.doSomethingAsync(dojo.hitch(this, this.callback));
}
}
如果没有故障,回调函数可能会在不同的范围内执行,并且会抛出错误this.flag
未定义。然而,有了故障,它保证在execptedScopeObj
.
我知道这个问题已经得到了回答,但不正确。jQuery.proxy http://api.jquery.com/jQuery.proxy我相信这就是您正在寻找的。
UPDATE
很多很多年后,经过大量 JavaScript 工作,并且由于浏览器兼容性已不再是问题而放弃了 jQuery 的使用后,我建议使用Function.prototype.bind https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind over jQuery.proxy http://api.jquery.com/jQuery.proxy, as @bobince 建议 https://stackoverflow.com/a/2035427/633513。虽然这仍然是原始问题的正确答案,但我觉得有义务引导人们使用普通的解决方案,而不是依赖 jQuery。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)