CoffeeScript - Funkcje
Funkcja to blok kodu wielokrotnego użytku, który można wywołać w dowolnym miejscu programu. Eliminuje to konieczność wielokrotnego pisania tego samego kodu. Pomaga programistom w pisaniu kodów modułowych.
Funkcje pozwalają programiście podzielić duży program na szereg małych i łatwych do zarządzania funkcji.
Ogólnie używając JavaScript możemy zdefiniować dwa typy funkcji - named functions, zwykłe funkcje z treścią nazwy funkcji i Function expressions. Korzystając z wyrażeń funkcyjnych, możemy przypisywać funkcje do zmiennych.
//named function
function sayHello(){
return("Hello there");
}
//function expressions
var message = function sayHello(){
return("Hello there");
}
Funkcje w CoffeeScript
Składnia funkcji w CoffeeScript jest prostsza w porównaniu z JavaScriptem. W CoffeeScript definiujemy tylko wyrażenia funkcyjne.
Plik functionsłowo kluczowe zostało wyeliminowane w CoffeeScript. Aby zdefiniować tutaj funkcję, musimy użyć cienkiej strzałki (->).
W tle kompilator CoffeeScript konwertuje strzałkę na definicję funkcji w JavaScript, jak pokazano poniżej.
(function() {});
Korzystanie z rozszerzenia nie jest obowiązkowe returnsłowo kluczowe w CoffeeScript. Każda funkcja w CoffeeScript automatycznie zwraca ostatnią instrukcję w funkcji.
Jeśli chcemy wrócić do funkcji wywołującej lub zwrócić wartość, zanim dojdziemy do końca funkcji, możemy użyć return słowo kluczowe.
Oprócz funkcji in-line (funkcji, które są w jednym wierszu), możemy również definiować funkcje wielowierszowe w CoffeeScript. Dzięki wyeliminowaniu nawiasów klamrowych możemy to zrobić zachowując odpowiednie wcięcia.
Definiowanie funkcji
Poniżej znajduje się składnia definiowania funkcji w CoffeeScript.
function_name = -> function_body
Przykład
Poniżej podano przykład funkcji w CoffeeScript. Tutaj stworzyliśmy funkcję o nazwiegreet. Ta funkcja automatycznie zwraca zawartą w niej instrukcję. Zapisz go w pliku o nazwiefunction_example.coffee
greet = -> "This is an example of a function"
Skompiluj go, wykonując następujące polecenie w wierszu polecenia.
c:\>coffee -c function_example.coffee
Podczas kompilacji generuje następujący kod JavaScript. Tutaj można zauważyć, że kompilator CoffeeScript automatycznie zwrócił wartość ciągu w nazwie funkcjigreet().
// Generated by CoffeeScript 1.10.0
(function() {
var greet;
greet = function() {
return "This is an example of a function";
};
}).call(this);
Funkcje wieloliniowe
Możemy również zdefiniować funkcję z wieloma wierszami, zachowując wcięcia zamiast nawiasów klamrowych. Ale musimy być spójni z wcięciem, które wykonujemy dla linii w funkcji.
greet = ->
console.log "Hello how are you"
Podczas kompilacji powyższy CoffeeScript daje następujący kod JavaScript. Kompilator CoffeeScript przechwytuje treść funkcji, którą oddzieliliśmy za pomocą wcięć i umieściliśmy w nawiasach klamrowych.
// Generated by CoffeeScript 1.10.0
(function() {
var greet;
greet = function() {
return console.log("Hello how are you");
};
}).call(this);
Funkcje z argumentami
Możemy również określić argumenty w funkcji za pomocą nawiasów, jak pokazano poniżej.
add =(a,b) ->
c=a+b
console.log "Sum of the two numbers is: "+c
Kompilując powyższy plik CoffeeScript, wygeneruje następujący 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);
Wywołanie funkcji
Po zdefiniowaniu funkcji musimy wywołać tę funkcję. Możesz po prostu wywołać funkcję, umieszczając nawias po jej nazwie, jak pokazano w poniższym przykładzie.
add = ->
a=20;b=30
c=a+b
console.log "Sum of the two numbers is: "+c
add()
Podczas kompilacji powyższy przykład daje następujący kod 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);
Po wykonaniu powyższego kodu CoffeeScript generuje następujące dane wyjściowe.
Sum of the two numbers is: 50
Wywoływanie funkcji z argumentami
W ten sam sposób możemy wywołać funkcję z argumentami, przekazując je do niej, jak pokazano poniżej.
my_function argument_1,argument_2
or
my_function (argument_1,argument_2)
Note - Podczas wywoływania funkcji przez przekazywanie do niej argumentów użycie nawiasów jest opcjonalne.
W poniższym przykładzie utworzyliśmy funkcję o nazwie add() który akceptuje dwa parametry i wywołaliśmy go.
add =(a,b) ->
c=a+b
console.log "Sum of the two numbers is: "+c
add 10,20
Podczas kompilacji powyższy przykład daje następujący kod 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);
Podczas wykonywania powyższego kodu CoffeeScript generuje następujące dane wyjściowe.
Sum of the two numbers is: 30
Argumenty domyślne
CoffeeScript obsługuje również domyślne argumenty. Możemy przypisać wartości domyślne do argumentów funkcji, jak pokazano w poniższym przykładzie.
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()
Podczas kompilacji powyższy CoffeeScript generuje następujący plik 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);
Po wykonaniu powyższego kodu CoffeeScript generuje następujące dane wyjściowe.
Sum of the two numbers is: 30
Sum of the two numbers is: 3