L'énigme de l'alias de fonctions JavaScript
En essayant d'utiliser la méthode alias pour créer des alias de fonctions JavaScript, certains utilisateurs ont rencontré des obstacles dans Firefox, Chrome, et même les fenêtres de débogage de Google Chrome.
La cause
Après analyse, il a été découvert que les fonctions JavaScript sont vaguement connectées à leurs objets hôtes. Lors de l'appel d'une fonction, JavaScript détermine la portée et la transmet à la fonction. Dans le cas de l'alias, la portée n'est pas explicitement spécifiée, donc l'objet Window global est passé comme portée.
Impact sur Document.getElementById Aliasing
Avec document .getElementById spécifiquement, ce désalignement devient problématique car getElementById s'attend à ce que cet objet soit l'objet document. Lorsque la fonction avec alias est appelée sans spécifier la portée correcte (c'est-à-dire le document), l'appel de fonction échoue, provoquant l'erreur « Opération illégale sur l'objet prototype WrappedNative ».
Solution de travail
Pour résoudre ce problème, la méthode apply peut être utilisée pour spécifier manuellement la portée lors de l'invocation de la fonction. Par exemple, au lieu d'appeler directement myAlias, la syntaxe suivante peut être utilisée :
myAlias.apply(document, ['someElement']);
Exception : Internet Explorer
Notamment, l'alias de fonction fonctionne comme prévu dans Internet Explorer. Cela est probablement dû à l'implémentation de getElementById par Internet Explorer, qui peut assimiler l'objet window à l'objet document.
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!