Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中的另一个类函数中调用类函数_Javascript_Oop - Fatal编程技术网

在javascript中的另一个类函数中调用类函数

在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

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