Extjs Window 的销毁

很多时候,我们会继承Ext.Window写一个自己的弹出业务框,像下边这样使用它。

var JRowWindow =null;

某个按钮的单击事件内容:

if (JRowWindow) {
JRowWindow = new Ext.JWindow({
//...配置信息
});
}

JRowWindow.show();

但是,当我们传入的配置信息发生变化,需要重新绘New这个Window(数据变化情况太多,根据数据调整界面空间太麻烦),这时,需要将JRowWindow销毁,即重新赋为null或undefined。这时需要这样做 

if (JRowWindow)

{
JRowWindow.removeAll();//这个错做是必须的,要不界面可能会绘制不全

}

JRowWindow = null;

另外,这段代码不可以包装为一个函数如:

function destoryWindow(win)

{

if (win)

{
win.removeAll();//这个错做是必须的,要不界面可能会绘制不全

}

win= null;

}

destoryWindow(JRowWindow);

特别说明;这么做是错误的,一般情况下,这种写法的确是引用传递,但是, 当你将对象赋值为null时,该引用传递将完全不起作用,(没搞懂为什么,有哪位大侠知道,可以告诉我一下哈)

你可能感兴趣的:(window)