0

我想在刷新函数中调用 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'}); 如何在刷新中使用帖子?

4

2 回答 2

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


进一步阅读材料:

于 2013-09-02T09:45:41.947 回答
0
refresh :   function(){
    this.posts();
}

JSFIDDLE

于 2013-09-02T09:47:02.777 回答