создайте анонимную функцию с необязательным аргументом в Coffeescript

#javascript #coffeescript

#javascript #coffeescript

Вопрос:

Я новичок в Coffeescript, и у меня возникли проблемы с включением этого Javascript:

 Handlebars.registerHelper("debug", function(optionalValue) {
  console.log("Current Context");
  console.log("====================");
  console.log(this);

  if (optionalValue) {
    console.log("Value");
    console.log("====================");
    console.log(optionalValue);
  }
});
  

В рабочий Coffeescript. Часть, на которой я зациклился, это, я думаю, как передать аргумент «debug» функции registerHelper, а также передать анонимную функцию, которая принимает необязательный аргумент.

Этот синтаксис:

 Handlebars.registerHelper: "debug", -> (optionalValue)
  console.log("Current Context")
  console.log("====================")
  console.log(this)

  if optionalValue
    console.log("Value")
    console.log("====================")
  

У меня не работает.

Ответ №1:

У вас есть параметр и -> обратный.
Вам также не нужна точка с запятой, поскольку вы вызываете функцию registerHelper.

 Handlebars.registerHelper "debug", (optionalValue) -> 
 console.log("Current Context")
 console.log("====================")
 console.log(this)

 if optionalValue
  console.log("Value")
  console.log("====================")
  console.log(optionalValue)
  

Которая компилируется из coffeescript в javascript как:

 Handlebars.registerHelper("debug", function(optionalValue) {
  console.log("Current Context");
  console.log("====================");
  console.log(this);
  if (optionalValue) {
    console.log("Value");
    console.log("====================");
    return console.log(optionalValue);
  }
});
  

Комментарии:

1. Большое спасибо за ответ — я ценю, что вы нашли время ответить. Работает отлично.