Modules ES6 et accessibilité des fonctions Onclick
Lors de l'importation de fonctions à partir de modules ES6 pour les utiliser dans les gestionnaires d'événements onclick, il est important de prendre en compte la nature de la portée de modules. Par défaut, les modules créent une portée distincte pour éviter les collisions de noms.
Dans l'exemple de code fourni, le problème survient car la fonction hello importée est définie dans la portée du module et n'est donc pas directement accessible dans le gestionnaire onclick. .
Pour résoudre ce problème, deux approches sont recommandées :
Utiliser Event Écouteurs :
Cette approche implique d'utiliser la méthode addEventListener pour lier la fonction importée à l'événement onclick. Voici une version modifiée du code :
<button type="button">
Exposer des fonctions à l'objet Window (non recommandé) :
Une autre approche, bien que non recommandée, consiste à explicitement exposer la fonction importée à l'objet window. Cependant, cette pratique peut entraîner des conflits de noms potentiels.
import {hello} from './test.js' window.hello = hello
En exposant la fonction à l'objet window, elle devient accessible en tant que gestionnaire onclick. Cependant, cette méthode n'est pas conseillée car elle peut polluer l'espace de noms global et entraver les efforts de débogage.
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!