3

我遇到了一些 JavaScript 函数的问题,这让我摸不着头脑大约一个小时,直到一些放置得当的 alert() 揭示了一些让我感到惊讶的东西。似乎一个函数正在改变另一个函数的局部变量。我写了一个简单的测试脚本:

function first() {
    msg = "1111";

    second();

    alert(msg);
    }


function second() {
    msg = "2222";
    }

当我调用 first() 时,我希望得到一个警告框,上面写着“1111”,但我得到的是“2222”。second() 如何影响属于 first() 的局部变量?我错过了什么还是这是一个错误?

我正在使用 Firefox 12.0。

4

1 回答 1

5

该变量仅在使用 var 语句时是本地的:

var msg = "1111";

否则,该值会逃逸到全局范围内。

于 2012-06-23T21:11:14.037 回答