其实这里的这个hanlder无非就是直接声明匿名函数和调用全局函数两种,它的scope属性是规定了此函数的运行环境,是在window底下还是tool自己底下,其实就是为了访问其他成员而已,举个例子
var a = {
b: 'a.b'
};
Ext.create('Ext.Button', {
text: 'Click me',
renderTo: Ext.getBody(),
scope: a,
handler: function(){alert(this.b)},
b: 'this.b'
});
当你设置scope为a时,则button的hanlder函数的执行环境为a对象,则可以再handler中访问a对象的成员,如上边this.b则输出’a.b'
当你不设置scope的时候默认handler的执行环境为button,则在方法体重输出‘this.b'
希望能帮到你