回调是引用本地化的函数,所以未定义。解决方法?

时间:2013-08-05 19:28:50

标签: javascript jquery

我相信这是个问题。

我有一些对象:

(function(){

  var call_new_function  = function(){
  // do some stuff: but this is function is undefined when called from callback

  }


   var someObject = new Thing();
   $(some_ele).click(function(){
      var _this = this;
      someObject.doSomething({
       // some values are set up

      },
     callback: call_new_function.call(_this)  <-- this throws an error of undefined
   )
  });

})

我的感觉超出了范围:call_new_function。这是一个关闭问题吗?

1 个答案:

答案 0 :(得分:2)

我认为你没有为callback提供功能。您正在立即执行您的函数并将其值返回callback

您可能想要做的是在回调时执行call_new_function.call(_this);。所以,将它包装在一个匿名函数中,如下所示:

callback: function() {
    call_new_function.call(_this);
}