JavaScript - 从事件处理程序调用内部方法
JavaScript - Call internal method from event handler
如果这是重复的,我深表歉意。我试图为这个确切的问题找到解决方案,但什么也想不出来。
在这里我有一个对象文字:
var Facets = {
searchresults: {},
init: function() {
$('.class').on("click", function(e){
e.preventDefault();
Facets.searchAll();
Facets.getFacets();
});
},
searchAll: function(){
// Some ajax code
this.searchresults = data;
},
getFacets: function(){
$('.somenode').each(function(){
var url = this.makeURL(somedata);
});
},
makeURL: function(){
// creates URL
}
};
Facets.init();
问题是当方法getFacets
调用this.makeURL
时,我得到一个错误。我不完全确定为什么,因为我认为对getFacets
的调用具有Facets
对象的上下文。
我的理解是,当触发事件处理程序时,它具有window
的上下文。因此,我调用Facets.getFacets
和Facets.searchAll
,以便这些函数知道要调用什么。但我知道我没有正确理解某些东西...
我也尝试Facets.getFacets().call(this)
以获得正确的上下文,但这不起作用。
您可以像这样捕获范围:
var Facets = {
searchresults: {},
init: function() {
$('.class').on("click", function(e){
e.preventDefault();
Facets.searchAll();
Facets.getFacets();
});
},
searchAll: function(){
// Some ajax code
this.searchresults = data;
},
getFacets: function(){
var self = this;
$('.somenode').each(function(){
var url = self.makeURL(somedata);
});
},
makeURL: function(){
// creates URL
}
};
Facets.init();
相关文章:
- bluebird promise catch() 没有使用 Promise.CancelError 调用内部函数
- ES2015:从覆盖的类调用内部方法
- 未调用内部JS Angular Controller
- JavaScript - 从事件处理程序调用内部方法
- 在 JavaScript 中调用内部函数
- $watch 不会在 Angularjs 中调用内部选项卡
- 如何调用内部 JavaScript 类方法
- 为什么要调用内部函数而不是方法
- 正在调用内部函数Javascript
- 在我的javascript中调用内部函数的问题'类'
- 如何用对象表示法调用内部javascript函数
- Express.js:调用内部服务
- 从java代码调用内部javascript函数
- Javascript从外部调用内部函数
- 如何从Rails视图调用内部API(用于ReactJS预呈现程序)
- 调用内部函数
- 从脚本外部调用内部铯函数
- 调用内部对象函数javascript
- 调用内部异步回调后迭代for循环
- $scope不调用内部函数