Ответ 1
Поместите скобки вокруг анонимных функций.
Я хочу передать две анонимные функции в качестве аргументов для jQuery hover, например:
$('element').hover(
function() {
// do stuff on mouseover
},
function() {
// do stuff on mouseout
}
);
Легко с одним - hover ->
- но каков правильный синтаксис в CoffeeScript для двух? Я пробовал ...hover ->
, ...hover( ->...
и т.д., Но мне не удалось получить вышеуказанную структуру.
Поместите скобки вокруг анонимных функций.
Я думаю, что проблема заключается в использовании комментариев одиночной строки //
. Однострочные комментарии, заключенные в /* .. */
, как представляется, работают нормально. Вот эквивалентный пример с чем-то отличным от комментария.
$('element').hover(
-> console.log("first")
-> console.log("second")
)
Или с комментариями с помощью /* .. */
.
$('element').hover(
-> /* first */
-> /* second */
)
Вы можете попробовать эти примеры на вкладке Try CoffeeScript. CoffeeScript добавляет оператор return, чтобы вернуть последнее выражение функции. Если вам нужны функции bare-bones, которые ничего не делают и не содержат return
в конце, попробуйте:
$('element').hover(
() ->
() ->
)
// $('element').hover(function() {}, function() {});
Другим способом является использование обратного слэша после функции вызова, запятая должна быть отступом правильно.
$('element').hover \
-> # do stuff on mouseover
,
-> # do stuff on mouseout
Без скобок или обратной косой черты:
f ->
0
, ->
1
Выход на 1.7.1:
f(function() {
return 0;
}, function() {
return 1;
});