一个初学者的问题,可能是一个微不足道的问题。这是 XUL 代码片段:
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/javascript" src="chrome://.../main.js"/>
<button label="Click me!" oncommand="clickhandler()"/>
</window>
JavaScript 代码:
// main.js
var test = "Peanut butter"; // a global variable
function clickhandler() {
alert(test);
}
解释器在读取主窗口的开始标记后立即处理 JavaScript 文件,然后继续处理其余的 XUL 代码。在我看来,test
变量应该在解释器完成处理的那一刻就超出范围main.js
。此外,该clickhandler()
功能也应该超出范围,这意味着当单击按钮时,什么都不会发生。好吧,除非我将它们声明为document.test
and document.clickhandler()
,例如。然而,一个简单的实验证明我错了。单击按钮时,函数和变量都存在。像这样声明的变量的实际寿命是多少?它们什么时候被销毁?他们在应用程序退出之前一直存在吗?任何最佳实践和参考都受到高度赞赏。