一部のJavaScript関数に問題があり、適切に配置されたalert()が私を驚かせる何かを明らかにするまで、約1時間頭をかいてしまいました。ある関数が別の関数のローカル変数を変更していたようです。簡単なテストスクリプトを作成しました。
function first() {
msg = "1111";
second();
alert(msg);
}
function second() {
msg = "2222";
}
first()を呼び出すと、「1111」というアラートボックスが表示されるはずですが、代わりに「2222」が表示されます。second()がfirst()に属するローカル変数にどのように影響しているのですか?私は何かが足りないのですか、それともこれはバグですか?
Firefox12.0を使用しています。