所有
当我在其官方网站上关注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中是什么样的?
答案 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文档中所提到的,在编写深层嵌套函数时,您需要注意不要意外地重复使用外部变量的名称。