Moonscript, добавить функцию / метод к объекту?

Как мне сделать это в Moonscript?

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

Ничто из того, что я пробовал, не скомпилировалось, и я ничего не увидел в их документации.

3 ответа

В Lua вы написали синтаксический сахар для следующего:

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

Так что вы бы сделали это в MoonScript. (Обратите внимание => как сокращение для добавления self в начало списка аргументов функции)

a.do_something = (b) =>
  print b

В MoonScript вы бы сделали:

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

-> а также => символы являются псевдонимами function ключевое слово.

a.dosomething = (b) =>
  print b

С использованием => (Жирная стрелка) стиль, как указано выше, добавляет область, т. Е. self, к списку аргументов автоматически.

Что вы ищете class.__base:

class C
  a: (x)=> print x

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

i=C!

i\b 5
--prints 10
Другие вопросы по тегам