繁体   English   中英

在JavaScript示例中评估范围

[英]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);

为什么在此示例中age99

reincarnate ,封闭(据我了解),可以进入age 为什么不将age更改为0?

由于reincarnate()包含:

var age;
age = 0;

它在自己的范围内重新声明了age变量。 随后, age名称是指“新”变量,而不是捕获的变量。

省略var关键字将导致捕获的age变量被修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM