我想在刷新功能中调用posts()。 这是我的代码。
var TIMELINE = TIMELINE || (function (){
/*** private ***/
var _args = {};
var self = this;
return {
init : function(Args){
_args = Args;
}, // init
posts : function(data) {
alert('posts called');
}, // posts
unsetMarkers : function() {
alert('unsetMarkers called');
}, // unsetMarkers
refresh : function(){
self.posts;
}
};
}());
问题出在这一行self.posts;
我也试过self.posts({'data':'success','another':'thing'});
如何在刷新时使用帖子?
答案 0 :(得分:2)
您的代码中存在两个问题:
self
不引用具有属性posts
的对象,即不引用从函数返回的对象。您有var self = this;
而this
引用window
(假设为非严格模式)。不是立即返回对象,而是将其分配给self
:
// instead of `var self = this;`
var self = {
// function definitions
};
return self;
然后你可以用
调用方法self.posts(); // note the parenthesis after the function name
如果您确定refresh
函数总是被称为TIMELINE.refresh()
(即作为TIMELINE
对象的方法),那么您也可以使用
posts
方法
this.posts();
忘了self
。
进一步阅读材料:
this
:了解this
在不同情境中的价值。答案 1 :(得分:0)
refresh : function(){
this.posts();
}