Egy gyakori (kezdők által gyakran elkövetett) hibára szeretném felhívni a figyelmet. JavaScript-ben a prototípus alapú öröklődés kapcsán, ha egy "osztályleírásban" szerepel egy tömb (vagy objektum), akkor az összes példány ugyanazt a tömböt (vagy objektumot) fogja megkapni.
Ext.define('Sample.BadComponent', {
extend: 'Ext.Component',
list: [],
initComponent: function () {
this.list.push(':)');
console.log(this.list);
this.callParent(arguments);
}
});
Ext.create('Sample.BadComponent');
Ext.create('Sample.BadComponent');
Az eredmény:
[":)"]
[":)", ":)"]