extjs中mon()和on()之间的区别是什么?

时间:2012-09-07 07:58:37

标签: javascript extjs

有人可以解释一下ExtJS中mon()on()之间的区别吗?

2 个答案:

答案 0 :(得分:7)

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

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 ,则面板destroy上的ExtJs会自动删除侦听器。

答案 1 :(得分: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