Учебники

CoffeeScript – Функции

Функция – это блок многократно используемого кода, который можно вызывать в любом месте вашей программы. Это избавляет от необходимости писать один и тот же код снова и снова. Это помогает программистам в написании модульных кодов.

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

В общем, используя JavaScript, мы можем определить два типа функций – именованные функции , обычные функции с телом имени функции и выражения функций . Используя выражения функций, мы можем назначать функции переменным.

//named function
function sayHello(){
   return("Hello there");
}
 
//function expressions
var message = function sayHello(){
   return("Hello there");
}

Функции в CoffeeScript

Синтаксис функции в CoffeeScript проще по сравнению с JavaScript. В CoffeeScript мы определяем только выражения функций.

Ключевое слово функции исключено в CoffeeScript. Чтобы определить здесь функцию, мы должны использовать тонкую стрелку ( -> ).

За кулисами компилятор CoffeeScript преобразует стрелку в определение функции в JavaScript, как показано ниже.

(function() {});

Не обязательно использовать ключевое слово return в CoffeeScript. Каждая функция в CoffeeScript автоматически возвращает последний оператор в функции.

  • Если мы хотим вернуться к вызывающей функции или вернуть значение до того, как достигнем конца функции, мы можем использовать ключевое слово return .

  • В дополнение к встроенным функциям (функциям, которые находятся в одной строке), мы также можем определить многострочные функции в CoffeeScript. Поскольку фигурные скобки устранены, мы можем сделать это, поддерживая правильные отступы.

Если мы хотим вернуться к вызывающей функции или вернуть значение до того, как достигнем конца функции, мы можем использовать ключевое слово return .

В дополнение к встроенным функциям (функциям, которые находятся в одной строке), мы также можем определить многострочные функции в CoffeeScript. Поскольку фигурные скобки устранены, мы можем сделать это, поддерживая правильные отступы.

Определение функции

Ниже приведен синтаксис определения функции в CoffeeScript.

function_name = -> function_body

пример

Ниже приведен пример функции в CoffeeScript. Здесь мы создали функцию с именем greet . Эта функция автоматически возвращает оператор в нем. Сохраните его в файле с именем function_example.coffee.

greet = -> "This is an example of a function"

Скомпилируйте его, выполнив следующую команду в командной строке.

c:\>coffee -c function_example.coffee

При компиляции он генерирует следующий код JavaScript. Здесь вы можете заметить, что компилятор CoffeeScript автоматически возвращает строковое значение в функции с именем greet () .

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;
  
  greet = function() {
    return "This is an example of a function";
  };

}).call(this);

Многострочные функции

Мы также можем определить функцию с несколькими строками, сохранив отступы вместо фигурных скобок. Но мы должны соответствовать отступу, которому мы следуем для строки в функции.

greet =  ->
  console.log "Hello how are you"

При компиляции вышеупомянутый CoffeeScript дает вам следующий код JavaScript. Компилятор CoffeeScript захватывает тело функции, которую мы разделили, используя отступы и помещая в фигурные скобки.

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;

  greet = function() {
    return console.log("Hello how are you");
  };

}).call(this);

Функции с аргументами

Мы также можем указать аргументы в функции, используя круглые скобки, как показано ниже.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c

При компиляции вышеуказанного файла CoffeeScript он сгенерирует следующий JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

}).call(this);

Вызов функции

После определения функции нам нужно вызвать эту функцию. Вы можете просто вызвать функцию, поместив скобки после ее имени, как показано в следующем примере.

add = ->
  a=20;b=30
  c=a+b
  console.log "Sum of the two numbers is: "+c  
add()

При компиляции приведенный выше пример дает вам следующий JavaScript

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function() {
    var a, b, c;
    a = 20;
    b = 30;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };
  add();
}).call(this);

При выполнении приведенного выше кода CoffeeScript он генерирует следующий вывод.

Sum of the two numbers is: 50

Вызов функций с аргументами

Таким же образом, мы можем вызвать функцию с аргументами, передав их ей, как показано ниже.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Примечание. При вызове функции путем передачи ей аргументов использование скобок является необязательным.

В следующем примере мы создали функцию с именем add (), которая принимает два параметра, и мы ее вызвали.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20 

При компиляции приведенный выше пример дает вам следующий JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);

}).call(this);

При выполнении вышеуказанного кода CoffeeScript он генерирует следующий вывод.

Sum of the two numbers is: 30

Аргументы по умолчанию

CoffeeScript также поддерживает аргументы по умолчанию. Мы можем присвоить значения по умолчанию аргументам функции, как показано в следующем примере.

add =(a = 1, b = 2) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

#Calling the function with default arguments
add()

При компиляции вышеупомянутый CoffeeScript генерирует следующий файл JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    if (a == null) {
      a = 1;
    }
    if (b == null) {
      b = 2;
    }
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);
  add()

}).call(this);

При выполнении приведенного выше кода CoffeeScript он генерирует следующий вывод.