Разобрался. Я никогда не определял конструктор, который обновлял свойства конфигурации. Я думал, что это произошло автоматически, но похоже, что это не так.
Код проблемы был в этом блоке:
Ext.define('Animal', {
config: { name: null },
speak: function() {
alert(this.getName());
}
});
В котором отсутствовала настройка конфига в конструкторе:
Ext.define('Animal', {
config: { name: null },
constructor: function(config) {
this.initConfig(config);
return this;
},
speak: function() {
alert(this.getName());
}
});
Теперь, когда я создаю новый экземпляр Animal, имя устанавливается
var bob = Ext.create('Animal', {
name: 'Bob' // set 'name' to Bob
});
bob.speak(); //now alerts 'Bob'
alert( bob.getName() ); //alerts 'Bob'