CoffeeScript - Fonctions

Une fonction est un bloc de code réutilisable qui peut être appelé n'importe où dans votre programme. Cela élimine le besoin d'écrire le même code encore et encore. Il aide les programmeurs à écrire des codes modulaires.

Les fonctions permettent à un programmeur de diviser un gros programme en un certain nombre de fonctions petites et gérables.

En général, en utilisant JavaScript, nous pouvons définir deux types de fonctions - named functions, les fonctions régulières avec le nom de la fonction body et, Function expressions. En utilisant des expressions de fonction, nous pouvons affecter des fonctions à des variables.

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

Fonctions dans CoffeeScript

La syntaxe de la fonction dans CoffeeScript est plus simple que celle de JavaScript. Dans CoffeeScript, nous définissons uniquement les expressions de fonction.

le functionLe mot-clé est éliminé dans CoffeeScript. Pour définir une fonction ici, il faut utiliser une flèche fine (->).

Dans les coulisses, le compilateur CoffeeScript convertit la flèche en définition de fonction en JavaScript, comme indiqué ci-dessous.

(function() {});

Il n'est pas obligatoire d'utiliser le returnmot-clé dans CoffeeScript. Chaque fonction de CoffeeScript renvoie automatiquement la dernière instruction de la fonction.

  • Si nous voulons revenir à la fonction appelante ou renvoyer une valeur avant d'atteindre la fin de la fonction, alors nous pouvons utiliser le return mot-clé.

  • En plus des fonctions en ligne (fonctions qui sont sur une seule ligne), nous pouvons également définir des fonctions multilignes dans CoffeeScript. Puisque les accolades sont éliminées, nous pouvons le faire en maintenant des indentations appropriées.

Définition d'une fonction

Voici la syntaxe de définition d'une fonction dans CoffeeScript.

function_name = -> function_body

Exemple

Ci-dessous, un exemple de fonction dans CoffeeScript. Ici, nous avons créé une fonction nomméegreet. Cette fonction renvoie automatiquement l'instruction qu'elle contient. Enregistrez-le dans un fichier avec le nomfunction_example.coffee

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

Compilez-le en exécutant la commande suivante dans l'invite de commande.

c:\>coffee -c function_example.coffee

Lors de la compilation, il génère le code JavaScript suivant. Ici, vous pouvez observer que le compilateur CoffeeScript a automatiquement renvoyé la valeur de chaîne dans la fonction nomméegreet().

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

}).call(this);

Fonctions multilignes

Nous pouvons également définir une fonction avec plusieurs lignes en conservant des indentations au lieu d'accolades. Mais nous devons être cohérents avec l'indentation que nous suivons pour une ligne dans une fonction.

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

Lors de la compilation, le CoffeeScript ci-dessus vous donne le code JavaScript suivant. Le compilateur CoffeeScript saisit le corps de la fonction que nous avons séparé à l'aide d'indentations et placé entre les accolades.

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

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

}).call(this);

Fonctions avec arguments

Nous pouvons également spécifier des arguments dans une fonction en utilisant des parenthèses comme indiqué ci-dessous.

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

Lors de la compilation du fichier CoffeeScript ci-dessus, il générera le JavaScript suivant.

// 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);

Appel d'une fonction

Après avoir défini une fonction, nous devons appeler cette fonction. Vous pouvez simplement appeler une fonction en plaçant des parenthèses après son nom, comme illustré dans l'exemple suivant.

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

Lors de la compilation, l'exemple ci-dessus vous donne le JavaScript suivant

// 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);

Lors de l'exécution du code CoffeeScript ci-dessus, il génère la sortie suivante.

Sum of the two numbers is: 50

Appel de fonctions avec des arguments

De la même manière, nous pouvons invoquer une fonction avec des arguments en lui passant comme indiqué ci-dessous.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Note - Lors de l'appel d'une fonction en lui passant des arguments, l'utilisation de parenthèses est facultative.

Dans l'exemple suivant, nous avons créé une fonction nommée add() qui accepte deux paramètres et nous l'avons invoqué.

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

Lors de la compilation, l'exemple ci-dessus vous donne le JavaScript suivant.

// 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);

Lors de l'exécution, le code CoffeeScript ci-dessus génère la sortie suivante.

Sum of the two numbers is: 30

Arguments par défaut

CoffeeScript prend également en charge les arguments par défaut. Nous pouvons attribuer des valeurs par défaut aux arguments d'une fonction, comme indiqué dans l'exemple suivant.

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()

Lors de la compilation, CoffeeScript ci-dessus génère le fichier JavaScript suivant.

// 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);

Lors de l'exécution du code CoffeeScript ci-dessus, il génère la sortie suivante.

Sum of the two numbers is: 30
Sum of the two numbers is: 3