Javascript传递"this"从原型到另一个函数
Javascript passing "this" from prototype to another function
我正在努力将上下文"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
}
谁能帮帮我?
您可以使用call
或apply
设置上下文
return somePrivateFunction.call(this).then(...)
或
return somePrivateFunction.apply(this).then(...)
您只是调用somePrivateFunction()
,其中this
将是全局对象,或严格模式下的undefined
。您需要使用.call
或.apply
来显式设置this
值:
MyController.prototype.somemethod = function (){
return somePrivateFunction.call(this)
.then( /* ... */ );
}
或者传递你想要的对象作为参数:
MyController.prototype.somemethod = function (){
return somePrivateFunction(this)
.then( /* ... */ );
}
function somePrivateFunction(that){
that.callSomeService()
/* ... */
}
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用clickToggle并在单击另一个元素时关闭元素
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 无法从jquery Mobile导航栏重定向到另一个页面
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 导航到特定事件的另一个变量页面
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 如何在react js中将值从一个组件发送到另一个组件
- 我怎么能在一个URL中有两种类型的参数,其中一种以“”开头#"而另一个以“0”开头&"并且不替
- 我怎么能"getImageData”;从另一个网站?SECURITY_ERR:DOM异常18
- 如何添加另一个"条目“;转换为此JSON
- Lawnchair javascript数据"得到“;不允许我分配给另一个变量
- 使用“^"以检查字符串是否以另一个字符串开头