在 CoffeeScript 中:
f = ->
v = 5
g = ->
v
g()
f() # returns 5 as expected
在红宝石中:
def f
v = 5
def g
v # undefined local variable or method `v' for main:Object (NameError)
end
g
end
f
好的,显然 JavaScript 函数被设置为在创建它们的范围内捕获变量,但 Ruby 的方法不是。有没有办法让 Ruby 方法在这方面表现得像 JavaScript 函数?