Moonscript,为对象添加一个函数/方法?

时间:2013-10-07 23:40:55

标签: moonscript

我如何在Moonscript中执行此操作?

function a:do_something(b)
    print(b)
end

我尝试的任何东西都不会编译,我在他们的文档中没有看到任何内容。

3 个答案:

答案 0 :(得分:2)

在Lua,你写的是以下语法糖:

a.do_something = function(self, b)
  print(b)
end

所以你会在MoonScript中做到这一点。 (注意=>作为将self添加到函数参数列表前面的简写)

a.do_something = (b) =>
  print b

答案 1 :(得分:1)

在MoonScript中你会做:

a.dosomething = (self, b) ->
  print b

->=>符号是function关键字的别名。

a.dosomething = (b) =>
  print b

使用上面的=>(胖箭头)样式,添加范围,即。 self,自动到参数列表。

答案 2 :(得分:0)

您要找的是class.__base

class C
  a: (x)=> print x

C.__base.b = (y)=> @a y*2

i=C!

i\b 5
--prints 10