Maison >interface Web >js tutoriel >Résumé des différentes méthodes d'appel de fonctions nommées dans les compétences JavaScript_javascript

Résumé des différentes méthodes d'appel de fonctions nommées dans les compétences JavaScript_javascript

WBOY
WBOYoriginal
2016-05-16 16:32:071617parcourir

Un article précédent mentionnait Plusieurs façons d'appeler des fonctions anonymes. Cet article examine les différentes manières d'appeler des fonctions nommées.

1, ()

Le plus couramment utilisé est l'opérateur () pour appeler/exécuter une fonction :

Copier le code Le code est le suivant :

// Fonction sans paramètre fun1
fonction fun1() {
alert('J'ai été appelé');
>
fun1();

// Fonction paramétrée fun2
fonction fun2(param) {
alerte(param);
>
fun2('On m'a appelé');

Après l'ajout de l'appel par ECMAScript3 et son application à la fonction, il existe les deux types suivants.

2. appeler

Copier le code Le code est le suivant :

// Fonction sans paramètre fun1
fonction fun1() {
alert('J'ai été appelé');
>
fun1.call(null);

// Fonction paramétrée fun2
fonction fun2(param) {
alerte(param);
>
fun2.call(null,'On m'a appelé')

3. postuler

Copier le code Le code est le suivant :

// Fonction sans paramètre fun1
fonction fun1() {
alert('J'ai été appelé');
>
fun1.apply(null);

// Fonction paramétrée fun2
fonction fun2(param) {
alerte(param);
>
fun2.apply(null,['On m'a appelé'])

Bien que call et apply puissent être uniquement utilisés pour appeler/exécuter des fonctions, ils sont davantage utilisés pour modifier le contexte d'exécution de la fonction.

4. nouveau (cette méthode n'est pas recommandée)

Copier le code Le code est le suivant :

// Fonction sans paramètre fun1
fonction fun1() {
alert('J'ai été appelé');
>
nouveau fun1();

// Fonction paramétrée fun2
fonction fun2(param) {
alerte(param);
>
new fun2('On m'a appelé')

L'essence de new est de créer/construire une instance d'une classe. Les fun1 et fun2 définis ici ne sont évidemment pas une classe (non ça, pas de prototype). Mais les deux fonctions se sont exécutées. C'est un effet secondaire du nouveau.

Par rapport aux méthodes d'appel ci-dessus, il n'y a aucune différence dans les résultats d'exécution des quatre méthodes. Mais si la fonction a une valeur de retour, vous pourriez être un peu déçu en l'appelant avec new.

Copier le code Le code est le suivant :

// Fonction fun
avec valeur de retour fonction fun() {
alert('J'ai été appelé');
Renvoyez "jack" ;
>
var c = nouveau plaisir();
alert(c);//[object Object], pourquoi pas "jack" ?

Changez-le par ceci

Copier le code Le code est le suivant :

// Fonction fun
avec valeur de retour fonction fun() {
alert('J'ai été appelé');
Renvoie {name:'jack'};
>
var c = nouveau plaisir();
alert(c.name); //jack, renvoyé normalement

Pour résumer : lors de l’appel d’une fonction à l’aide d’une nouvelle méthode. S'il existe une valeur de retour, lorsque la valeur de retour est un type intégré (type de base) de JavaScript tel que String, Number, Boolean, etc., la valeur ne sera pas renvoyée lorsque la valeur de retour est un objet ; fonction, tableau et autres types d'objets, l'objet, la fonction, le tableau seront renvoyés directement.

Lorsque la valeur de retour est un type intégré (type de base), que renvoie exactement new fun() ? Le prochain article abordera les détails du nouvel appel de méthode.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn