0
votes

JavaScript: Comment appeler une méthode d'un constructeur? Ma variable retourne indéfini

Je crée une classe JavaScript pour gérer les balises SVG dans HTML. (Je sais qu'il y a beaucoup de cours qui le fait déjà, mais je n'ai pas réussi avec des transformations via SVG.J. Aussi, j'ai apporté toutes les fonctions requises à travailler et je veux juste les mettre en œuvre comme une classe à la facilité syntaxique. )

Cependant, ne pas être aussi familier avec JavaScript, j'ai des problèmes avec une variable qui est définie sur non défini dans mon constructeur: xxx

En essayant de l'exécuter, je suis retourné le code d'erreur suivant: Entrez la description de l'image ici

Comment définir la variable correctement? J'utilise Chrome (version 83.0.4103.116) et le navigateur prend en charge des cours aussi loin que je suis remarqué.

Faites-moi savoir si je devrais fournir toute autre information pertinente.


2 commentaires

Vous n'avez pas déclaré PROP Anywhere et Classe est toujours strict, vous obtenez donc l'erreur (plutôt que l'alternative bien pire - un global implicite). Ajouter const devant prop : pour (const accéder à obj) .


S'il vous plaît ne modifiez pas votre réponse dans la question. Si vous ressentez la nécessité d'écrire une réponse, écrivez-en une comme une réponse réelle.


3 Réponses :


1
votes

Je suppose que le programme n'a pas encore été déclaré, vous devrez donc utiliser var.

for(var prop in obj) {
    this.svgobj.setAttribute(prop, obj[prop])  
}


1 commentaires

Oui merci! C'était la solution. J'ai été surpris que mon code ait effectivement travaillé dans une fonction générale mais j'ai fait des problèmes lorsque vous essayez de la mettre en œuvre dans une classe. Je pense que cela pourrait être un cas d'une erreur pythonique (ne pas penser à la déclaration de l'identifiant des variables). Bravo et la vitesse de Dieu!



0
votes

Vous pouvez essayer ceci:

for (const prop in obj) {
  this.svgobj.setAttribute(prop, obj[prop]);
}


0 commentaires

0
votes

La déclaration de variable était votre problème.

Votre code pourrait être optimisé en remplaçant la boucle pour avec: xxx


0 commentaires