如何在JavaScript中重载[]运算符

106

我似乎找不到在JavaScript中重载[]运算符的方法。有没有人知道如何做?

我正在考虑...

MyClass.operator.lookup(index)
{
    return myArray[index];
}

还是我没有看对地方。


3
这里的回答是错的,JavaScript中的数组实际上只是对象,它们的键可以强制转换为uint32(-1)值,并且在其原型上具有额外的方法。 - Benjamin Gruenbaum
只需将您的 MyClass 对象变成一个数组即可。您可以将 myArray 中的键和值复制到您的 var myObj = new MyClass() 对象中。 - jpaugh
嘿,我想重载 {} 运算符,有什么想法吗? - assayag.org
11个回答

0
类和代理可以结合使用:
class Overload {
    #data = {};
    constructor () {
        return new Proxy(this, this);
    }
    get (_, p) {
        return this.#data[p];
    }
}

记住代理处理所有属性访问。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接