Глобальные функции в CoffeeScript?

В своем проекте на рельсах наконец перехожу на CoffeeScript. До этого все писал на чистом JavaScript. Возникла проблема сразу же.
Файл1
$ ->
    function1 -> some code

Ранее у меня было:
$(function(){
  function1 = function(){some code}
});

Файл2
$ ->
  function1()

Ранее было:
$(function(){
  function1();
});

На чистом Javascript все работает. А тут оборачивает в дополнительный скоуп или как это правильно назвать и выдает ошибку function1 is not defined
Как обойти данную проблему?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@c0va23
Backend-разработчик
Так происходит из-за области видимости переменной.

Первый файл на выходе должен выдать что-то типа:
$(function() {
  return function1(function() {
    return some(code);
  });
});


А вам нужно использовать такой код:
$ ->
    window.function1 = -> some code


На выходе получится такой код:
$(function() {
  return window.function1 = function() {
    return some(code);
  };
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы