J'ai remarqué qu'il ya deux facons de definir des fonctions en javascript.

1- Une variable contenant une fonction anonyme

var square = function(n){ return n*n; }

2-La methode habituelle

function square(n){ return n*n; }

Ce que j'aimerais savoir, c'est dans quel cas on utilise l'un ou l'autre?

3 réponses


En fait, pour laisser ça simple, la seconde façon, souvent la plus naturelle, déclare une fonction dans le contexte courant. Tandis que la première façon stock la variable dans une variable. On est souvent amené à l'utiliser pour créer des objets (même si on ne déclare pas forcément la variable). Si jamais tu utilises la seconde méthode dans le contexte global (window), tu devrais au même type que la première manière, avoir accès à cette dernière en faisant window.square. Voici donc trois équivalents :

square = function(n){ return n*n; }
window.square = function(n){ return n*n; }
function square(n){ return n*n; }

Il y a une vidéo des Techdays qui explique en détail.
regarder à partir de 24' 30"

Ok, je vais regarder ca.