Créee un variable avec du texte et une variable

Le problème exposé dans ce sujet a été résolu.

Dans ma deuxième fonction j’ai besoin de récupéré la photo base 64 qui est lier au canvas donc si je suis sur canvas N°1 je veux la photo qui est dans la variable canvas_1 mais la même fonction peux aussi être utilisé sur le canvas N° 2 et donc la il me faut la variable canvas_2 d’ou utilisation de la variable dynamique

Judepom : comme l’a souligné je sais plus qui, le problème n’est pas tant qu’un client puisse exécuter du code frauduleux sur son navigateur, mais qu’un client puisse exécuter du code frauduleux chez un autre client. Si tu fais des eval tu peux éxécuter du code qui serait dans une variable, dont le contenu peut potentiellement venir du serveur, ou d’une lib JS tierce, ou d’autres éléments sur la page qui peuvent venir d’une régie de pub etc ; et même si ça vient de ton serveur, lui-même potentiellement y inclut des données qui peuvent venir de l’extérieur (autre client, autre serveur, un fichier (qui y a accès ?), que sais-je). Mettre un eval dans un code JS c’est un peu ouvrir une backdoor chez le client et faire reposer sa sécurité sur des éléments extérieurs à ce code, c’est pas ouf. Difficile dans ces conditions d’avoir une idée de ce qui peut se passer chez le client. Mais c’est pas le seul problème d’eval : maintenance, debugging, vitesse d’exécution, etc. C’est jamais une bonne idée d’utiliser eval, et on peut toujours faire sans. Peu importe le langage.

stephcache : Tu peux déclarer un tableau vide : var xs = []; et ensuite remplir uniquement les cases que tu veux et y accéder par leur numéro. Ca revient exactement au même que faire plusieurs variables avec le numéro dans le nom, sauf que t’as pas besoin de faire un truc crade à chaque fois que tu veux en récupérer un en particulier. ;)

Bien déjà const ne va pas car sont contenu peut être modifier et en plus x1 peut être rempli mais pas forcement les autres

stephcache

T’as pas bien compris ce que c’est const. La référence est constante. Tu peux ajouter ce que tu veux à l’objet et le modifier.

+0 -0

Après réflexion, le plus drôle dans ce thread c’est que ce que l’OP veut faire revient, dans le scope global, à utiliser un objet comme on le lui recommande tous.

(Gardez en tête qu’il n’y a pas de listes / d’array en JS, les arrays sont des objets dont le prototype est Array, dont les clés sont des strings comme pour tout objet, et qui ont une propriété length.)

Déclarer une variable avec var ou une fonction dans le scope global la rend accessible dans l’objet global (window dans un navigateur).

  • var a = 77; function b () { return 77 }; window.a === window.b() // true
  • const oo = 'oo'; window['f' + oo] = 12; foo === 12 // true

Si l’OP comprend ça il est évident qu’utiliser un objet (par exemple un array) résoudra son problème proprement en dehors du scope global, en l’utilisant en lieu et place de window.

+3 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte