Frage

Ich habe ein JavaScript-Objekt, das sieht wie folgt aus:

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;
    }
}

Nun, das Problem ist, dass ich den Wert von filterValue müssen den Wert der Konstante auf das übergeordnete Objekt enthalten. Zur Zeit habe ich versucht, das Verfahren gezeigt oben und dann die filter Referenzierung, wenn das Array Element zuzugreifen versuchen, aber das gibt einfach nicht definiert.

Wie konvertiere ich die filterValue Variable in den Wert des Konstante es darstellt?

War es hilfreich?

Lösung

Das hat nichts mit dem variablen Umfang zu tun.

var filterValue = this['VENUE_' + field];

tun würde.

Andere Tipps

ist Javascript kein Konzept von ‚Eltern‘. Und ich denke, Sie Umfang und Kontext sind verwirrend. Wenn das Verfahren als var filterBy geschrieben wurde () würden Sie es in einem anderen ‚Umfang‘ zugreifen müssen. Aber durch die Verwendung ‚dies‘ gehalten Sie in dem gleichen Objekt in wie es geschrieben wurde. Also alles, was Sie in 'this' Kontext geschrieben.

Versuchen Sie diese:

var filterValue = this['VENUE_' + field];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top