Резюме:
Я хочу знать, возможно ли сделать что-то вроде этого:
{a: 'A',b: this.a}
... с помощью другого указателя, например {a: 'A',b: self.a}
или {a: 'A',b: own.a}
или что-нибудь еще ...
Полный вопрос:
Я пытаюсь расширить MyBaseModule, используя Ext.extend, и мне нужно сопоставить значения в объекте расширения, переданном Ext.extend ().
Поскольку я еще не в контексте MyModule, я не могу использовать this для ссылки на объект (см. Пример ниже строки 12).Есть ли другой способ ссылаться на значения, подобные этому, без предварительного создания объекта?
1 MyModule = Ext.extend(MyBaseModule, {
2 dataStores: {
3 myDataStore: new Ext.data.Store({...})
4 },
5
6 myGridDefinition: {
7 id: 'myGridDefinitionPanel',
8 bodyBorder: false,
9 items: [{
10 xtype: 'grid',
11 id: 'myGridDefinitionGrid',
12 store: this.dataStores.myDataStore
13 }]
14 }
15 });
Или это единственное решение, следующее?Я хотел бы избежать этого, если это возможно, поскольку я считаю, что он менее читабелен для определений больших расширений.
1 var extensionObject = {
2 dataStores: {
3 myDataStore: new Ext.data.Store({...})
4 },
5
6 myGridDefinition: {
7 id: 'myGridDefinitionPanel',
8 bodyBorder: false,
9 items: [{
10 xtype: 'grid',
11 id: 'myGridDefinitionGrid'
12 }]
13 }
14 };
15
16 extensionObject.locationsGrid.items[0].store = extensionObject.dataStores.locations;
17
18 MyModule = Ext.extend(MyBaseModule, extensionObject);