2012-06-05 12 views
7

in C# è possibile creare un indicizzatore personalizzato in questo modoJavascript indice personalizzato di accesso

public object this[string name] 
    { 

    } 

sto lavorando con una libreria javascript widget di che ha un widget che prende un aray di oggetti come una proprietà chiamata etichette in questo modo

new Thingy({ 
     labels: [{value:1, text:"my label"},[{value:2, text:"my next label"}] 
     }); 

Il problema è che si deve pianificare in anticipo per sapere esattamente che cosa tutti i valori sono che avrà bisogno di un'etichetta. Ad esempio, nell'esempio sopra, so che le etichette saranno per i valori 1 e 2. Ma se non so quali potrebbero essere i valori, mi piacerebbe essere in grado di creare dinamicamente il testo in base al valore tenta di accedere

in modo che quando la libreria tenta internamente per accedere a:

this.labels[n].text 

vorrei this.labels [n] per fare qualcosa di simile

function(n){return {text: "label for " + n};} 

questo è possibile entro i limiti del il linguaggio javascript?

risposta

1

È possibile ottenere es6 proxies nell'ultimo Chrome e scrivere un gestore come in C#, ma non sarà compatibile con i browser più vecchi.

Nel frattempo suggerisco di inserire un metodo getLabel() su un Thingy.prototype.

Problemi correlati