周期性更新对象的javascript对象模式
我希望定期更新js对象(在创建对象时初始化之后),并尝试以下操作:周期性更新对象的javascript对象模式,javascript,Javascript,我希望定期更新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();
}()
}
这目前不起作用,
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);