web-dev-qa-db-fra.com

Différence entre une fonction avec un nom et une fonction sans nom en Javascript

1.

function abc(){
    alert("named function");
}

contre

2.

function(){
    alert("Un-Named function");
}

Veuillez expliquer du point de départ.

28
Shwet

Ils fonctionnent exactement de la même manière. Ce n'est que dans la façon dont vous pouvez les exécuter qu'ils sont différents.

Donc, exemple # 1, vous pouvez rappeler à tout moment avec abc();. Par exemple 2, vous devrez soit le passer en paramètre à une autre fonction, soit définir une variable pour le stocker, comme ceci:

var someFunction = function() {
    alert("Un-Named function");
}

Voici comment le passer dans une autre fonction et l'exécuter.

// define it
function iRunOtherFunctions(otherFunction) {
    otherFunction.call(this);
}

// run it
iRunOtherFunctions(function() {
    alert("I'm inside another function");
});

Comme David le mentionne ci-dessous, vous pouvez aussi l'appeler instantanément:

(function() {
    alert("Called immediately");
})(); // note the () after the function.
21
Jordan

Les deux peuvent être utilisés pour obtenir le même résultat, mais la principale différence est que les fonctions anonymes n'ont pas besoin de nom. Les fonctions anonymes sont des fonctions qui sont déclarées dynamiquement lors de l'exécution. On les appelle des fonctions anonymes car elles ne reçoivent pas de nom de la même manière que les fonctions normales.

Veuillez vous référer à ceci lien

2
Amit