我想要一個乾淨的方式來實例化和更新JavaScript對象。
現在,我使用這種方法:乾淨的方式來實例化和更新JavaScript對象? (我的方法是否有效?)
myApp.chart.GridController = Backbone.Base.extend({
_defaults : {
width : 500,
height : 500,
indicatorXMin : 100,
indicatorXMax : 10000,
indicatorXScale : "log",
xScale : undefined,
yScale : undefined,
xAxis : undefined,
yAxis : undefined,
element : undefined,
},
options : {},
constructor: function (options) {
this.options = $.extend(this.options.defaults, options);
this.render();
},
update : function(options) {
this.options = $.extend(this.options, options);
this.render();
},
render : function(){
this.updateAxes();
this.draw();
}
[...]
是否有設置和壓倒一切的默認值的更好的方法?
使用此方法時,我總是要使用「選項」前綴我的所有的變量,有一個更清潔的解決方法嗎?
在上述例子中,_defaults.xAxis和_defaults.yAxis實際上從其它變量的。無論如何,這些應該放入_defaults對象中,還是放置在哪裏? (我不希望有跟蹤哪些變量「導出選項」,而不是...)
3)編輯: 我的意思是不應該的對象屬性在構造函數中被覆蓋,而是根據其他屬性進行更新。
不使用$ .extend我做類似:
var a,b; var c;
構造(A,B) this.a = A; this.b = b;
this.c = A + B;
我只是想知道,如果它是有問題的把c中的默認設置中...
我不知道我的理解(3)以上 - 也許如果添加的是什麼,你認爲你可以做的,而不是你上面貼的代碼的例子。 – Pointy
@Pointy:我添加了一個簡單的例子。Thx:=) – dani
好吧,我現在看到 - 我會添加到我的答案。 – Pointy