如何在coffeescript中引用outter作用域中的变量

如何在coffeescript中引用outter作用域中的变量,coffeescript,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; };

全部:

当我在其官方网站上关注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访问outter作用域中的inner,它在coffeescript中会是什么样子?

changeNumber
之前定义
inner
,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文档中提到的,在编写深度嵌套的函数时,您需要小心不要意外地重用外部变量的名称。

谢谢,如果我不给内部变量任何值,会发生什么情况?很好。这行不通。因此,
internal
仍将在
changeNumbers
中声明为内部变量。不确定此行为是否有意。您可以始终编写
internal=undefined
internal=null