9

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

public object this[string name]
    {

    }

我正在使用一个 javascript 小部件库,该库具有一个小部件,该小部件将一系列对象作为称为标签的属性,如下所示

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语言的范围内吗?

4

1 回答 1

1

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

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

于 2012-06-05T22:26:01.330 回答