En PHP, vous pouvez faire des choses étonnantes/horribles comme ceci :
Est-il possible de faire quelque chose comme ça avec Javascript ?
Par exemple si j’ai un obtenir une référence à la variable avec le nom
?
En PHP, vous pouvez faire des choses étonnantes/horribles comme ceci :
Est-il possible de faire quelque chose comme ça avec Javascript ?
Par exemple si j’ai un obtenir une référence à la variable avec le nom
?
Depuis ECMA-/Javascript est tout à propos de Objects
et Contexts
(qui sont aussi somekind de l'Objet), chaque variable est stockée dans un tel appelée Variable (ou, dans le cas d'une Fonction, l' Activation de l'Objet).
Donc, si vous créez des variables comme ceci:
var a = 1,
b = 2,
c = 3;
Dans la portée Globale (= AUCUNE fonction du contexte), vous implicitement écrire ces variables dans l' objet Global (= window
dans un navigateur).
Ceux-ci peuvent obtenir accessibles à l'aide de la "dot" ou "support" de la notation:
var name = window.a;
ou
var name = window['a'];
Cela ne fonctionne que pour l'objet global dans ce cas particulier, parce que la Variable d'Objet de l' Objet Global est l' window
objet lui-même. Dans le Contexte d'une fonction, vous n'avez pas un accès direct à l' Activation de l'Objet. Par exemple:
function foobar() {
this.a = 1;
this.b = 2;
var name = window['a']; // === undefined
alert(name);
name = this['a']; // === 1
alert(name);
}
new foobar();
new
crée une nouvelle instance d'un objet défini (contexte). Sans new
de la portée de la fonction sera également global
(=fenêtre). Cet exemple serait d'alerte undefined
et 1
respectivement. Si l'on remplacerait this.a = 1; this.b = 2
avec:
var a = 1,
b = 2;
À la fois alerte sorties serait pas défini. Dans ce scénario, les variables a
et b
seraient stockés dans l'Activation de l'Objet à partir d' foobar
, nous ne pouvons pas accès (bien sûr, nous pourrions accéder à ceux-ci directement en appelant a
et b
).
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.