如果这是重复的,我很抱歉。我已经尝试为这个确切的问题找到解决方案,但无法提出任何建议。
这里我有一个对象文字:
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
andFacets.searchAll
以便这些函数知道要调用什么。但我知道我没有正确理解某些东西......
我也试图Facets.getFacets().call(this)
获得正确的上下文,但这没有用。