2012-06-05 17 views
7

en C# se puede crear un indexador de encargo al igual queJavascript de acceso índice personalizado

public object this[string name] 
    { 

    } 

estoy trabajando con una librería de widgets Javascript que tiene un widget que toma un Aray de objetos como una propiedad llamados etiquetas como tal

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

El problema es que hay que planificar con anticipación para saber exactamente lo que todos los valores son que necesitarán una etiqueta. Por ejemplo, en el ejemplo anterior, sé que las etiquetas serán para los valores 1 y 2. Pero si no sé cuáles podrían ser los valores, me gustaría poder crear el texto dinámicamente en función del valor que tiene intenta acceder a la

por lo que cuando la biblioteca intenta internamente para acceder a:

this.labels[n].text 

me gustaría this.labels [n] para hacer algo como

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

Es esto posible dentro de los límites de el lenguaje javascript?

Respuesta

1

Puede obtener es6 proxies en la última versión de Chrome y escribir un controlador como en C#, pero no será compatible con navegadores más antiguos.

Mientras tanto sugiero poner un método getLabel() en un Thingy.prototype.

Cuestiones relacionadas