Javascript 自定义索引访问器

Javascript custom index accessor

本文关键字:访问 索引 自定义 Javascript      更新时间:2023-09-26

在 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

我希望这个.labels[n]做类似的事情

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

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

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

同时,我建议在Thingy.prototype上放置一种getLabel()方法。