JavaScript: Convertir la chaîne à la valeur de la variable prédéfinie
-
20-09-2019 - |
Question
J'ai un objet JavaScript qui ressemble à ce qui suit:
venue = function(map, dataSet) {
// set some constants
this.VENUE_ID = 0;
this.VENUE_NAME = 1;
this.VENUE_CITY = 2;
this.filterBy = function(field, value) {
...
var filterValue = 'parent.VENUE_' + field;
}
}
Maintenant, le problème est que je dois la valeur de filterValue
pour contenir la valeur de la constante sur l'objet parent. À l'heure actuelle, j'ai essayé d'utiliser la méthode indiqué ci-dessus, puis faisant référence à la FilterValue lorsque vous essayez d'accéder à l'élément du tableau, mais cela revient tout simplement pas défini.
Comment puis-je convertir la variable filterValue
dans la valeur de la constante qu'elle représente?
La solution
Cela n'a rien à voir avec la portée variable.
var filterValue = this['VENUE_' + field];
ferait.
Autres conseils
JavaScript n'a pas de concept de 'parent'. Et je pense que vous confondez la portée et le contexte. Si cette méthode a été écrit comme var filterBy () vous auriez à y accéder dans un «champ d'application différent. Mais en utilisant « ceci »-vous gardé dans le même objet comme il a été écrit. Donc, tout ce que vous avez écrit est dans le contexte « ceci ».
Essayez ceci:
var filterValue = this['VENUE_' + field];