jquery有相同的dojo.hitch()吗?

Lig*_*ard 16 jquery

请原谅我的无知,因为我对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.


bob*_*nce 6

[ 管理员编辑:请注意下面更受欢迎的答案.- danorton]

我会选择function.bind,这将是在未来版本的JavaScript中执行此操作的标准方法.除了修复this,它还允许您将参数传递给目标函数.

在所有浏览器本地支持它之前,您可以自己破解支持.