Javascript 创建对象时交叉引用js对象变量 总结:
我想知道这样做是否可行:Javascript 创建对象时交叉引用js对象变量 总结:,javascript,extjs,this-pointer,Javascript,Extjs,This Pointer,我想知道这样做是否可行: {a: 'A',b: this.a} …通过使用其他指针,如{a:a',b:self.a}或{a:a',b:own.a}或其他任何东西 完整问题: 我正在尝试使用Ext.extend扩展MyBaseModule,需要交叉引用传递给Ext.extend()的扩展对象中的值 因为我还不在MyModule的上下文中,所以我不能使用它来引用对象(参见下面第12行的示例)。有没有其他方法可以在不首先创建对象的情况下引用这样的值 1 MyModule = Ext.extend(M
{a: 'A',b: this.a}
…通过使用其他指针,如{a:a',b:self.a}
或{a:a',b:own.a}
或其他任何东西
完整问题:
我正在尝试使用Ext.extend扩展MyBaseModule,需要交叉引用传递给Ext.extend()的扩展对象中的值
因为我还不在MyModule的上下文中,所以我不能使用它来引用对象(参见下面第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);
您可以逐步构建对象:
var dataStores = {
myDataStore: new Ext.data.Store({...})
};
var extensionObject = {
dataStores: dataStores,
myGridDefinition: {
id: 'myGridDefinitionPanel',
bodyBorder: false,
items: [{
xtype: 'grid',
id: 'myGridDefinitionGrid',
store: dataStores.myDataStore
}]
}
};
另一种方法:
var extensionObject = {
dataStores: {
myDataStore: new Ext.data.Store({...})
}
};
extensionObject.myGridDefinition = {
id: 'myGridDefinitionPanel',
bodyBorder: false,
items: [{
xtype: 'grid',
id: 'myGridDefinitionGrid',
store: extensionObject.dataStores.myDataStore
}]
};
您可以逐步构建对象:
var dataStores = {
myDataStore: new Ext.data.Store({...})
};
var extensionObject = {
dataStores: dataStores,
myGridDefinition: {
id: 'myGridDefinitionPanel',
bodyBorder: false,
items: [{
xtype: 'grid',
id: 'myGridDefinitionGrid',
store: dataStores.myDataStore
}]
}
};
另一种方法:
var extensionObject = {
dataStores: {
myDataStore: new Ext.data.Store({...})
}
};
extensionObject.myGridDefinition = {
id: 'myGridDefinitionPanel',
bodyBorder: false,
items: [{
xtype: 'grid',
id: 'myGridDefinitionGrid',
store: extensionObject.dataStores.myDataStore
}]
};
我意识到,当我想要访问对象的属性时,对象还没有被创建,所以我要寻找的是JavaScript语言中某种内置的助手功能,告诉它在创建对象后解析引用。。。隐马尔可夫模型。。。我看得越多,就越不可能存在这样的功能。我意识到,当我想要访问对象的属性时,对象还没有创建,所以我要寻找的是JavaScript语言中某种内置的帮助器功能,告诉它在创建对象后解析引用。。。隐马尔可夫模型。。。我看得越多,就越不可能存在这样的功能。我想没有别的办法了。我希望避免像这样分割对象定义,但我可能只是有点困难…我想没有其他办法了。我希望避免像这样分割对象定义,但我可能只是有点困难。。。