我正在努力将上下文“ this”从控制器中的原型函数传递到同一控制器中的私有函数。浏览器控制台抛出错误“无法读取未定义的属性'callSomeService'”。我的代码看起来像-

MyController.prototype.somemethod = function (){
      return somePrivateFunction()
              .then(function (resultsFromsomePrivateFunction){
                  return someAnotherPrivateFunction(resultsFromsomePrivateFunction)
       });
}

function somePrivateFunction(){
   this.callSomeService()
         .then(function (results) {
             return results
           });
}

function someAnotherPrivateFunction(){
   //dosomething
}


有人可以帮忙吗?

最佳答案

您可以使用callapply设置上下文。

return somePrivateFunction.call(this).then(...)


要么

return somePrivateFunction.apply(this).then(...)

关于javascript - Javascript将“this”从原型(prototype)传递到另一个函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39716383/

10-10 22:13