回调时的Ext.define init对象属性

时间:2015-01-08 09:46:38

标签: extjs

我的例子:

 Ext.define('Shpak', 

     {
                name: 'Eugene',
                surname : 'Popov',
                getParam:function(){
                    console.log( this.param + '_____'  + this.surname )
                }
    }

    , function(){
        console.log('callback')
         this.param = 'default';
    });


    var bird =  Ext.create('Shpak')  

    bird.getParam()//undefined_____Popov  

为什么未定义?

1 个答案:

答案 0 :(得分:2)

检查Ext.define

的回调函数的定义
  

createdFn:Function(可选)在类之后执行的回调   创建后,其执行范围(this)将是新创建的   上课本身。

回调函数中的 是类,而不是对象。

在创建类之后调用回调函数,而不是对象。

尝试在构造函数中添加init逻辑。检查下面的代码。

constructor: function(cfg) {
     this.param = 'default';
     this.initConfig(cfg);
}

JS小提琴: http://jsfiddle.net/n1czm24o/3/

<强>更新

或者将逻辑提取到初始化函数

constructor: function(cfg) {
    this.initFields();
    this.initConfig(cfg);
},
initFields: function() {
    this.param = 'default';
}

JS小提琴: http://jsfiddle.net/sod1ft49/1/