Ответ 1
Вам нужно экспортировать функцию преобразования в глобальную область.
См. Как можно использовать функции доступа Coffescript из других активов?
window.convert = (num1, num2, num3) ->
num1 + num2 * num3
Я пытаюсь преобразовать 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
Как это исправить?
Вам нужно экспортировать функцию преобразования в глобальную область.
См. Как можно использовать функции доступа Coffescript из других активов?
window.convert = (num1, num2, num3) ->
num1 + num2 * num3
@lawnsea ответ велик.
Я просто хочу добавить некоторые мысли.
Вместо того, чтобы загрязнять глобальное пространство имен, я предпочитаю добавлять только одну переменную к объекту window
.
window.App = {}
Затем вы можете получить доступ к App
по всему миру и добавить туда все свои материалы. теперь функция convert
может быть выражена следующим образом:
App.convert = convert = (a, b, c) -> a + b * c
Затем, чтобы вызвать функцию в локальной области
convert 1,2,3
И теперь глобально
App.convert 1,2,3
На верхнем уровне вашего файла coffeescript этот (aka @) должен ссылаться на окно. Поэтому, чтобы прикрепить его сюда, вы можете использовать сокращенное обозначение:
@convert = (num1, num2, num3) -> num1 + num2 * num3
Обратите внимание, что это загрязняет глобальное пространство имен. Решение, размещенное jm -, более осмотрительно. Но вы можете заменить
window.App = {}
с
@App = {}
Преимущество использования @ заключается в том, что он относится к глобальному в node.js, поэтому вы можете использовать тот же код, чтобы выставлять свои функции как в браузере, так и в серверных сред.
window.convert = (num1, num2, num3) ->
num1 + num2 * num3
Вы должны проверить эти удивительные слайды, выпущенные сегодня только godfoca http://www.slideshare.net/godfoca/lets-have-a-cup-of-coffeescript Кроме того, вы можете попробовать выполнить код через веб-сайт http://jashkenas.github.com/coffee-script/
convert = (num1, num2, num3) ->
num1 + num2 * num3
convert = (num1, num2, num3) -> num1 + num2 * num3