Подтвердить что ты не робот

Функции в CoffeeScript

Я пытаюсь преобразовать function из Javascript в CoffeeScript. Это код:

function convert(num1, num2, num3) {
    return num1 + num2 * num3;
}

Но как я могу это сделать в CoffeeScript?


Я пытаюсь запустить функцию из источника HTML следующим образом:

<script type="text/javascript" src="../coffee/convert.js"></script>

<script type="text/javascript">
    convert(6, 3, 10);
</script>

Но это не сработает, и я получаю сообщение об ошибке: ReferenceError: Can't find variable: convert

Как это исправить?

4b9b3361

Ответ 2

@lawnsea ответ велик.

Я просто хочу добавить некоторые мысли.

Вместо того, чтобы загрязнять глобальное пространство имен, я предпочитаю добавлять только одну переменную к объекту window.

window.App = {}

Затем вы можете получить доступ к App по всему миру и добавить туда все свои материалы. теперь функция convert может быть выражена следующим образом:

App.convert = convert = (a, b, c) -> a + b * c

Затем, чтобы вызвать функцию в локальной области

convert 1,2,3

И теперь глобально

App.convert 1,2,3

Ответ 3

На верхнем уровне вашего файла coffeescript этот (aka @) должен ссылаться на окно. Поэтому, чтобы прикрепить его сюда, вы можете использовать сокращенное обозначение:

@convert = (num1, num2, num3) -> num1 + num2 * num3

Обратите внимание, что это загрязняет глобальное пространство имен. Решение, размещенное jm -, более осмотрительно. Но вы можете заменить

window.App = {}

с

@App = {}

Преимущество использования @ заключается в том, что он относится к глобальному в node.js, поэтому вы можете использовать тот же код, чтобы выставлять свои функции как в браузере, так и в серверных сред.

Ответ 4

window.convert = (num1, num2, num3) ->
  num1 + num2 * num3

Ответ 6

convert = (num1, num2, num3) -> num1 + num2 * num3