Maison > interface Web > js tutoriel > Quelle est la différence entre `window.onload = initAll();` et `window.onload = initAll;` en JavaScript ?

Quelle est la différence entre `window.onload = initAll();` et `window.onload = initAll;` en JavaScript ?

DDD
Libérer: 2024-12-07 12:14:12
original
787 Les gens l'ont consulté

What's the Difference Between `window.onload = initAll();` and `window.onload = initAll;` in JavaScript?

Parenthèses dans les appels de fonctions JavaScript

En JavaScript, appeler une fonction sans parenthèses peut sembler anodin lorsqu'aucun argument n'est impliqué. Cependant, une différence subtile apparaît entre les deux syntaxes :

window.onload = initAll();
Copier après la connexion
window.onload = initAll;
Copier après la connexion

Lorsque des parenthèses sont utilisées :

Utiliser des parenthèses dans un appel de fonction, comme dans le premier exemple, exécute la fonction immédiatement. Le résultat de l'exécution de la fonction, le cas échéant, est ensuite affecté à la variable ou à la propriété recevant l'appel de fonction, dans ce cas, window.onload. Cette exécution est généralement indésirable lorsque vous avez l'intention d'attribuer la fonction elle-même à l'écouteur.

Lorsque les parenthèses sont omises :

Omettre les parenthèses, comme dans le deuxième exemple, attribue la référence de fonction directement à la variable ou à la propriété. La fonction ne sera exécutée que lorsque l'auditeur ou l'événement la déclenchera, garantissant ainsi le comportement souhaité.

Remarque supplémentaire :

Une autre variante que vous pouvez rencontrer est :

window.onload = () => initAll();
Copier après la connexion

Ceci utilise une fonction de flèche enroulée autour de initAll. Il crée une fonction qui appelle immédiatement initAll lors de l'invocation. Cependant, comme la fonction externe est affectée à window.onload, elle garantit que initAll est exécuté uniquement lors de l'événement de chargement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal