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