Функция — это блок многократно используемого кода, который можно вызывать в любом месте вашей программы. Это избавляет от необходимости писать один и тот же код снова и снова. Это помогает программистам в написании модульных кодов.
Функции позволяют программисту разделить большую программу на несколько маленьких и управляемых функций.
В общем, используя 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 он генерирует следующий вывод.