function foo(){ var x = 1; return function() { alert(x); } }; var bar = foo(); bar(); // 1 var x = 2 ; bar(); // 1
今晚看这段代码时,一直理解错误,误以为x会受全局的影响,当foo(),匿名函数 functon(){alert(x)} 中的x作用域指向的是foo,故在foo存在x的情况下,全局下的x便对其无法影响。