Динамические методы CoffeeScript

Я пытаюсь динамически создавать методы в сценарии coffee, но, как показывает мой код, итератор, который я использую для создания методов не сбрасывает свои переменные между итерациями, поэтому я использую общие переменные, которые конфликтуют:

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

кто-нибудь знает, что я делаю неправильно?

6
задан loopole 28 June 2011 в 15:08
поделиться