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?

Était-ce utile?

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];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top