【发布时间】:2011-06-29 03:44:54
【问题描述】:
我正在尝试在咖啡脚本中动态创建方法,但正如我的代码所示,我用来创建方法的迭代器不会在迭代之间重置其变量,因此我遇到了冲突的共享变量:
class MyClass
constructor: (@name) ->
for k, v of ['get', 'set']
console.log('creating method: ' + v)
MyClass::[v] = (args...) ->
method = v
console.log('executing method: ' + method)
o = new MyClass('dummy')
o.get()
o.set()
输出:
> creating method: get
> creating method: set
> executing method: set
> executing method: set
知道我做错了什么吗?
【问题讨论】:
-
顺便说一句,您可以改变主意并接受 Trevor 的回答。使用
do可能比单独的函数更符合习惯。
标签: metaprogramming coffeescript