初心者の質問、おそらく些細な質問。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
ええと、例えば、私がそれらをととして宣言しない限りdocument.clickhandler()
。しかし、簡単な実験で私は間違っていることがわかりました。ボタンがクリックされると、関数と変数の両方が存在します。このように宣言された変数の実際の寿命はどれくらいですか?彼らはいつ破壊されますか?アプリケーションが終了するまで、それらは存在しますか?ベストプラクティスとリファレンスは高く評価されています。