CoffeeScript - Функции
Функция - это блок многократно используемого кода, который можно вызывать в любом месте вашей программы. Это избавляет от необходимости писать один и тот же код снова и снова. Это помогает программистам писать модульные коды.
Функции позволяют программисту разделить большую программу на несколько небольших и управляемых функций.
В общем, используя JavaScript, мы можем определить два типа функций: named functions, обычные функции с телом имени функции и, Function expressions. Используя функциональные выражения, мы можем назначать функции переменным.
//named function
function sayHello(){
return("Hello there");
}
//function expressions
var message = function sayHello(){
return("Hello there");
}
Функции в CoffeeScript
Синтаксис функции в CoffeeScript проще по сравнению с JavaScript. В CoffeeScript мы определяем только функциональные выражения.
В functionключевое слово исключено в CoffeeScript. Чтобы определить здесь функцию, мы должны использовать тонкую стрелку (->).
За кулисами компилятор CoffeeScript преобразует стрелку в определение функции в JavaScript, как показано ниже.
(function() {});
Не обязательно использовать returnключевое слово в CoffeeScript. Каждая функция в 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)
Note - При вызове функции путем передачи ей аргументов использование круглых скобок необязательно.
В следующем примере мы создали функцию с именем 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 он генерирует следующий вывод.
Sum of the two numbers is: 30
Sum of the two numbers is: 3