Coffeescript相当于Python的getattr

Dav*_*son 3 javascript python coffeescript

在python中,我可以在运行时将函数放入变量,然后使用getattr函数调用它

method = getattr(self,self.name)
method()
Run Code Online (Sandbox Code Playgroud)

在Coffeescript中有类似的方法吗?谢谢!


使用zeekay建议但使用类将是:

class Test
   foo: -> alert 'foo'
   foo2: methodName -> this[methodName]()

x = new Test
x.foo2('foo')
Run Code Online (Sandbox Code Playgroud)

zee*_*kay 11

在Javascript对象中是关联数组,您可以使用属性的名称作为键来访问属性/方法:

obj =
  method: -> 'xxx'
method = obj['method']
method() # 'xxx'
Run Code Online (Sandbox Code Playgroud)

您更新的示例不起作用,因为foo2它只是返回foo.你可能想试试这个:

class Test
   foo: -> alert 'foo'
   foo2: -> this['foo']() # or @['foo']()

x = new Test
x.foo2()
Run Code Online (Sandbox Code Playgroud)