第二個console.log文件中bar
怎麼回事?它不應該是「安迪」或拋出一個參考錯誤?另外,爲什麼foo
未定義?JavaScript變量範圍不期待結果
使用Chrome。
// lexical scope example
var bar = "Andy";
try {
console.log(bar); // Andy
(function() {
console.log(bar); // undefined!
var bar = "B",
foo = "Last Name";
console.log(bar); // B
console.log(foo); // Last Name
})();
console.log(bar); // B
console.log(foo); // Reference Error
} catch (e) {
console.log(e);
}
的jsfiddle以上的: http://jsfiddle.net/2D9fj/3/
相關http://stackoverflow.com/questions/1552941/variables-in-anonymous-functions-can-someone-explain-the-following? – j08691