javascript范围

Fur*_*lon 1 javascript

我遇到了以下奇怪的代码:

function foo(){
    works = {hello:"world"};
    function bar(){
        alert('does not work');
    }
    var notwork = {hello:"world"};
}
foo();
alert(works.hello);
alert(notwork.hello);
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么工作有效,而工作不起作用?或者指出一个很好的资源,详细解释这一点.

非常感谢你!

Dmi*_*kov 11

var notwork创建一个仅对函数运行时有效的局部变量.

works创建一个在整个javascript运行时有效的全局变量.

  • 不可以.函数执行后局部变量非常有效.这就是**Javascript关闭**的原因. (3认同)