我已經在我的部件花了很多時間調試strage錯誤的。該組件已禁用/啓用按鈕,但我沒有看到效果。過了一段時間,我注意到,按鈕在我創建的最後一個組件實例中發生了變化。聲明看起來如此:道場聲明 - 默認屬性(實例或靜態)範圍
constructor: function(options) {
for(var i in options){
this[i] = options[i];
}
},
domNode: null,
grid: null,
data: [],
buttons: {},
在調試,我見過的,那個時候我創造我的對象的第二個實例:
new CustomComponent({domNode: dojo.byId('secondid')})
的按鈕都已經設置 - 它們的實例爲所有人共享實例!
在最終的效果,我在我的組件創建一個靜態變量。這不是我想要的!該聲明有什麼錯誤?我應該如何爲每個組件實例分別設置「按鈕」實例?
那麼技術上我的組件是一個小部件,但它不會從任何繼承。我認爲這不是問題,似乎declare中的所有內容都是原型,它被複制到子實例,所以通過按鈕:{}您創建一個新的Object,它將被複制到所有實例。所以正確的方法是在構造函數中創建該對象。 –
你爲什麼不從WidgetBase繼承?它使事情變得容易很多,我沒有看到任何缺點。 – g00glen00b
我不需要WidgetBase中的任何東西,至少我現在不知道任何這樣的東西:) –