Extend and members
When a member is redefined in a subclass it is _replaced_, not merged. This can lead to (arguably) unexpected results when redefining members that are objects, Arrays, etc.
by Walter Rumsby
November 03, 2014
HTML
<ul id="output"></ul>
JavaScript
Ext.define('My.Base', {
extend: 'Ext.Component',
foo: {
a: 1,
b: 2,
c: 3
},
bah: 'Gerard'
});
Ext.define('My.Sub', {
extend: 'My.Base',
foo: {
d: 4,
e: 5
},
bah: 'Prince'
});
var sub = Ext.create('My.Sub'),
el = document.getElementById('output');
Object.keys(sub.foo).forEach(function (k) {
var html = Ext.String.format('<li>{0}: {1}</li>', k, sub.foo[k]);
el.innerHTML += html;
});
el.innerHTML += Ext.String.format('<li>{0}</li>', sub.bah);