如何在coffeescript中引用外部范围中的变量

时间:2015-11-05 05:58:03

标签: coffeescript

所有

当我在其官方网站上关注coffeescript教程时,有一个样本:

outer = 1
changeNumbers = ->
  inner = -1
  outer = 10
inner = changeNumbers()

等于:

var changeNumbers, inner, outer;

outer = 1;

changeNumbers = function() {
  var inner;
  inner = -1;
  return outer = 10;
};

inner = changeNumbers();

我想知道如果我想从函数changeNumber访问out范围内的内容,它在coffeescript中是什么样的?

1 个答案:

答案 0 :(得分:2)

inner之前定义changeNumber,而coffeeScript不会将其视为内部变量。例如:

outer = 1
inner = 2
changeNumbers = ->
  inner = -1
  outer = 10
inner = changeNumbers()

会编译成这样的东西:

var changeNumbers, inner, outer;

outer = 1;

inner = 2;

changeNumbers = function() {
  inner = -1;
  return outer = 10; 
};

inner = changeNumbers();

正如CoffeeScript文档中所提到的,在编写深层嵌套函数时,您需要注意不要意外地重复使用外部变量的名称。