请原谅我的无知,因为我对jquery并不熟悉.是否有相当于dojo.hitch()的东西?它返回一个保证在给定范围内执行的函数.
- 编辑 - 根据要求,这是一个例子.我经常使用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));
}
}
Run Code Online (Sandbox Code Playgroud)
没有故障,回调函数可能在不同的范围内执行,并且this.flag在未定义的情况下会抛出错误.然而,有了障碍,它保证在内部执行execptedScopeObj.
Lor*_*eck 44
我知道这已得到回答,但不正确.jQuery.proxy正是你所寻找的我相信.
UPDATE
很多年后,经过大量的JavaScript工作,并且在剥离了我对jQuery的使用之后,因为浏览器兼容性已经变得不那么重要了,我建议使用Function.prototype.bindover jQuery.proxy,正如@bobince建议的那样.虽然这仍然是原始问题的正确答案,但我觉得有义务将人们引导到一个普通的解决方案而不是依赖于jQuery.
| 归档时间: |
|
| 查看次数: |
6361 次 |
| 最近记录: |