Javascript ExtJS:通过原型上的函数设置属性:这是安全模式吗?

Javascript ExtJS:通过原型上的函数设置属性:这是安全模式吗?,javascript,extjs,extjs5,Javascript,Extjs,Extjs5,我正在编写一个围绕ExtJS3编写的大型ExtJS代码库,该代码库具有以下许多initComponent()模式: Ext.define('PVE.form.BackupModeSelector'{ 扩展:“PVE.form.KVComboBox”, 别名:['widget.pveBackupModeSelector'], initComponent:function(){ var me=这个; me.comboItems=[ ['snapshot',gettext('snapshot')],

我正在编写一个围绕ExtJS3编写的大型ExtJS代码库,该代码库具有以下许多initComponent()模式:

Ext.define('PVE.form.BackupModeSelector'{
扩展:“PVE.form.KVComboBox”,
别名:['widget.pveBackupModeSelector'],
initComponent:function(){
var me=这个;
me.comboItems=[
['snapshot',gettext('snapshot')],
['suspend',gettext('suspend')],
['stop',gettext('stop')]
];
me.callParent();
}
现在我开始直接在原型上设置这些属性,例如:

这适用于ExtJS5,但它是一种安全模式吗?我可以确定在调用initComponent时comboItems已经设置好了吗?
我知道config对象,但这似乎有些过分。

在第一种方式中,您强制使用comboItems值

在第二种情况下,comboItems在配置中可用,并具有默认值。这意味着您可以覆盖它

var ms = Ext.create('PVE.form.BackupModeSelector', {
    comboItems: [
        // ... someting else
    ]
});

这取决于您是否希望更改此值。

我意识到我的问题实际上是一个更一般的问题,我在这里重新表述:
var ms = Ext.create('PVE.form.BackupModeSelector', {
    comboItems: [
        // ... someting else
    ]
});