Ответ 1
undefined
- это ключевое слово в CoffeeScript. Вам не нужно его правильно определять, поэтому вы можете забыть эту часть.
CoffeeScript предоставляет ключевое слово do
, которое можно использовать для создания замыкания, а не для использования синтаксиса выражений функции, вызываемого сразу.
do ($ = jQuery, window) ->
$ ->
alert "js!"
Скомпилированный JavaScript
(function($, window) {
return $(function() {
return console.log("js!");
});
})(jQuery, window);
Вышеупомянутый синтаксис не поддерживался до появления CoffeeScript 1.3.1. Для более старой версии вам все равно нужно сделать это:
Источник CoffeeScript [попробуйте](($, window) ->
$ ->
alert "js!"
)(jQuery, window)
Если вам интересно, вот как CoffeeScript обрабатывает undefined
.
console.log undefined
Скомпилированный JavaScript
console.log(void 0);
Вы можете видеть, что он не использует переменную undefined
, но вместо этого использует JavaScript void
operator для создания undefined значение.