122 votes

Pourquoi certains appels de fonction sont-ils qualifiés d '« invocations illégales » en JavaScript ?

Par exemple, si je fais ceci :

var q = document.querySelectorAll;

q('body');

Je reçois une "Invocation illégale" erreur dans Chrome. Je ne vois pas pourquoi c'est nécessaire. D'une part, ce n'est pas le cas avec toutes les fonctions de code natif. En fait, je peux le faire :

var o = Object; // which is a native code function

var x = new o();

Et tout fonctionne très bien. En particulier, j'ai découvert ce problème en traitant avec le document et la console. Avez-vous des idées ?

-1voto

Fawad Points 37

Dans mon cas, l'invocation illégale s'est produite en raison du passage d'une variable non déclarée à fonctionner comme argument. Assurez-vous de déclarer la variable avant de passer à la fonction.

-1voto

love-for-coding Points 97

vous pouvez utiliser comme ceci :

let qsa = document.querySelectorAll;
qsa.apply(document,['body']);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X