初心者の方の質問、たぶん些細なものでしょう。JavaScript変数の範囲(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コードの残りの部分と進み、ここではXULのコードスニペットです。私の意見では、test
変数は、インタープリタが処理を終了した瞬間に範囲外になるはずですmain.js
。さらに、clickhandler()
関数もスコープ外になっているはずです。つまり、ボタンをクリックしても何も起こりません。まあ、私はdocument.test
とdocument.clickhandler()
と宣言しない限り、例えば、。しかし、簡単な実験で私は間違っていました。ボタンをクリックすると、関数と変数の両方が存在します。このように宣言された変数の実際の寿命はどのくらいですか?彼らはいつ破壊されますか?アプリケーションが終了するまで周囲にいるのですか?ベストプラクティスと参考文献は高く評価されています。
いくつかの良い参考文献:http://stackoverflow.com/questions/39691/javascript-best-practices。機能の外側と「VAR」のないものは、「ウィンドウ」名前空間で定義されます(例えばwindow.test、window.clickhandler) – fenone