如何在coffeescript中引用outter作用域中的变量
全部: 当我在其官方网站上关注coffeescript教程时,有一个示例:如何在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; };
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
。