在javascript中的另一个类函数中调用类函数
我想在刷新函数中调用posts()。 这是我的密码在javascript中的另一个类函数中调用类函数,javascript,oop,Javascript,Oop,我想在刷新函数中调用posts()。 这是我的密码 var TIMELINE = TIMELINE || (function (){ /*** private ***/ var _args = {}; var self = this; return { init : function(Args){ _args = Args; }, // init posts : function(da
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','other':'thing')代码>
如何在刷新中使用帖子?您的代码中有两个问题:
self
不引用具有属性posts
的对象,即不引用从函数返回的对象。你有var self=this代码>和此
指的是窗口
(假设为非严格模式)
- 您甚至没有尝试调用该函数
不要立即返回对象,而是将其指定给self
:
// instead of `var self = this;`
var self = {
// function definitions
};
return self;
然后您可以使用
self.posts(); // note the parenthesis after the function name
this.posts();
如果您确定refresh
函数始终被称为TIMELINE.refresh()
(即作为TIMELINE
对象的一种方法),则还可以使用调用posts
方法
self.posts(); // note the parenthesis after the function name
this.posts();
忘了自己吧
进一步阅读材料:
- :了解此在不同上下文中的值
- :了解函数如何工作
“我想在刷新函数中调用posts()。”酷。你的问题是什么?像“self.posts(data);”这样打电话:你还必须传递数据。但我看不到任何地方构建的数据。@FlixKling问题出在这行self.posts;我也试过self.posts();如何在刷新中使用帖子?