Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 - Fatal编程技术网

周期性更新对象的javascript对象模式

周期性更新对象的javascript对象模式,javascript,Javascript,我希望定期更新js对象(在创建对象时初始化之后),并尝试以下操作: var data = { foo: -1, bar: -1, refresh: function() { this.foo = getFoo(); this.bar = getBar(); }() } 这目前不起作用,This似乎没有引用数据对象。我可以在这里尝试几种不同的排列方式,但不知道我是不是选错了树?对于需要定期更新(外部调用)的对象,我应该使用什么样的模

我希望定期更新js对象(在创建对象时初始化之后),并尝试以下操作:

var data = {
    foo: -1,
    bar: -1,
    refresh: function() {
        this.foo = getFoo();
        this.bar = getBar();
    }()
}

这目前不起作用,
This
似乎没有引用数据对象。我可以在这里尝试几种不同的排列方式,但不知道我是不是选错了树?对于需要定期更新(外部调用)的对象,我应该使用什么样的模式。

这将是调用函数的任何内容。在您的情况下,您可以立即自动调用它,因此,
窗口将调用它

你能做的是:

var data = {
    foo: -1,
    bar: -1,
    refresh: function() {
        this.foo = getFoo();
        this.bar = getBar();
    }
}
data.refresh();

你很接近了,抛开那些结尾
()

您需要提供
getFoo
getBar
函数,或接受
refresh
中的参数,例如:

var data = {
    foo: -1,
    bar: -1,
    refresh: function(newFoo, newBar) {
        this.foo = newFoo;
        this.bar = newBar;
    }
};
用法:

data.refresh();
data.refresh(42, 52);

很好,谢谢-这是一般推荐的方式吗?使用obj作为查询字符串变量的存储。@flyingcrab:我不知道你用它来做什么。对象对于在键/值对中存储结构化信息非常有用(这就是它们所做的),所以请确定。如果您需要具有相同功能的多个对象,请查看构造函数,但如果您只需要一个,则可以。如果涉及到任何复杂性,我会使用命名函数而不是匿名函数(请参阅:),但除此之外。。。
data.refresh(42, 52);