3

谁能解释一下ExtJSmon()和in 的区别?on()

4

2 回答 2

7

好吧,如果你想避免内存泄漏,那么你可以使用mon而不是on来绑定事件。例如:

var p = new Ext.Panel({
     renderTo:Ext.getBody()
    ,title:'Panel with a listener on the body'
    ,beforeDestroy:function() {
        this.body.un('click', handler);
    }
});

如果您将侦听器添加为内联函数,例如:

p.on('click', function() {alert('You clicked my body')});

那么就不可能有选择地删除这个监听器。但是,如果你使用mon,那么在面板销毁时,ExtJs 会自动删除监听器。

于 2012-09-07T08:12:56.823 回答
1

mon - 将侦听器添加到任何 Observable 对象(或 Ext.Element),当该组件被销毁时,这些对象会自动删除。

on - 将事件处理程序附加到可观察对象

看:

http://docs.sencha.com/ext-js/4-2/#!/api/Ext-method-on

http://docs.sencha.com/ext-js/4-2/#!/api/Ext.util.Observable-method-mon

于 2013-04-04T12:01:27.323 回答