Domanda

Ho un oggetto JavaScript simile al seguente:

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

Ora, il problema è che mi serve il valore di filterValue per contenere il valore della costante sull'oggetto genitore.Attualmente ho provato a utilizzare il metodo mostrato sopra e quindi a fare riferimento a filterValue quando provo ad accedere all'elemento dell'array, ma questo restituisce semplicemente unfine.

Come faccio a convertire il file filterValue variabile nel valore della costante che rappresenta?

È stato utile?

Soluzione

Questo non ha nulla a che fare con l'ambito variabile.

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

farebbe.

Altri suggerimenti

JavaScript non ha il concetto di "genitore".E penso che tu stia confondendo ambito e contesto.Se quel metodo fosse scritto come var filterBy() dovresti accedervi in ​​un "ambito" diverso.Ma usando "questo" hai mantenuto lo stesso oggetto così come è stato scritto.Quindi tutto ciò che hai scritto è in "questo" contesto.

Prova questo:

var filterValue = this['VENUE_' + field];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top