【发布时间】:2012-03-29 03:22:14
【问题描述】:
我今天听说“可以访问函数的局部变量,因为 javascript 中的所有内容都是全局的”。
据我所知,您无法从变量范围之外访问局部变量。
例如,
function f()
{
var myvar = "something";
}
myvar = "c"; // i'm not accessing myvar in f();
我还听说可以使用 for(var i in window) 来访问 myvar。我想确认这是不可能的,因为我不是该语言的作者。
更新:
我问了他一个代码 sn-p,这是我收到的。
var person = {
whoIs : function()
{
var name = "name";
return name;
}
};
var str = "TEST:\n";
for(var n in person)
{
str += n;
str += " = [" + person[n] + "]\n";
}
// perform regular exp. to get the value of name variable.
alert(str);
它没有访问变量............它只是打印函数的样子......
【问题讨论】:
-
“可以访问函数的局部变量,因为 javascript 中的所有内容都是全局的” 这绝对是错误的。
-
进一步扩展一点,JavaScript 有一些非常奇怪的作用域(如果你不熟悉的话),但是“JavaScript 中的一切都是全局的”是完全错误的。就像,错误地逃离那个开发者。
-
问那个人“你最后一次使用 JavaScript 是什么时候?”
标签: javascript scope