Javascript自定义索引访问器

时间:2012-06-05 22:18:55

标签: javascript arrays json

在c#中你可以像这样创建一个自定义索引器

public object this[string name]
    {

    }

我正在使用一个javascript小部件库,它有一个小部件,它将一个对象的aray作为一个叫做标签的属性,如此

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

问题在于您必须提前计划以确切知道需要标签的所有值是什么。例如,在上面的示例中,我知道标签将用于值1和2.但是如果我不知道值可能是什么,我希望能够根据值动态创建文本试图访问

所以当库内部尝试访问时:

this.labels[n].text

我想this.labels [n]做类似

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

这可能在javascript语言的范围内吗?

1 个答案:

答案 0 :(得分:1)

您可以在最新的Chrome中获得es6 proxies并编写C#中的处理程序,但它与旧版浏览器不兼容。

与此同时,我建议在getLabel()上添加Thingy.prototype方法。