谁能解释一下ExtJSmon()
和in 的区别?on()
问问题
7208 次
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 回答