我想定期更新一個js對象(當創建對象的初始化之後),並嘗試以下操作:JavaScript對象模式的定期更新對象
這並不目前在此刻工作,this
似乎並沒有指向數據對象。我可以在這裏嘗試幾種不同的排列方式 - 但是想知道我是否在這裏咆哮錯誤的樹?對於需要定期更新(稱爲外部)的對象,我應該使用什麼樣的模式。
我想定期更新一個js對象(當創建對象的初始化之後),並嘗試以下操作:JavaScript對象模式的定期更新對象
這並不目前在此刻工作,this
似乎並沒有指向數據對象。我可以在這裏嘗試幾種不同的排列方式 - 但是想知道我是否在這裏咆哮錯誤的樹?對於需要定期更新(稱爲外部)的對象,我應該使用什麼樣的模式。
你是八九不離十,溝渠中那些結尾()
:
var data = {
foo: -1,
bar: -1,
refresh: function() {
this.foo = getFoo();
this.bar = getBar();
} // <== here
}; // <== Also, semicolon here for best practice
用法:
data.refresh();
您需要提供getFoo
和getBar
功能,或接受參數到refresh
,例如:
var data = {
foo: -1,
bar: -1,
refresh: function(newFoo, newBar) {
this.foo = newFoo;
this.bar = newBar;
}
};
用法:
data.refresh(42, 52);
this
將無論如何調用你的功能。在你的情況下,你會立即自動調用它,因此它將被window
對象調用。
你可以做的是:
var data = {
foo: -1,
bar: -1,
refresh: function() {
this.foo = getFoo();
this.bar = getBar();
}
}
data.refresh();
很好,謝謝 - 而這會不會普遍推薦的方法?使用obj作爲查詢字符串變量的商店.. – malangi 2011-01-27 13:42:12