Javascript自定义索引访问器

Mic*_*ael 8 javascript arrays json

在c#中,您可以像这样创建自定义索引器

public object this[string name]
    {

    }
Run Code Online (Sandbox Code Playgroud)

我正在使用一个javascript小部件库,它有一个小部件,它将一个对象的aray作为一个名为label的属性

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

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

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

this.labels[n].text
Run Code Online (Sandbox Code Playgroud)

我想this.labels [n]做类似的事情

function(n){return {text: "label for " + n};}
Run Code Online (Sandbox Code Playgroud)

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

spa*_*ain 1

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

同时我建议getLabel()Thingy.prototype.