[英]Evaluate Scope in JavaScript Example
查看此“ CoffeeScript-加速JavaScript开发”示例:
(function() {
var age, reincarnate;
age = 99;
reincarnate = function() {
var age;
age = 0;
console.log("inner age:", age);
return age;
};
reincarnate();
console.log("I am " + age + " years old");
}).call(this);
为什么在此示例中age
为99
?
reincarnate
,封闭(据我了解),可以进入age
。 为什么不将age
更改为0?
由于reincarnate()
包含:
var age;
age = 0;
它在自己的范围内重新声明了age
变量。 随后, age
名称是指“新”变量,而不是捕获的变量。
省略var
关键字将导致捕获的age
变量被修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.