javascript - 如何让一个类表现得像一个数组?

标签 javascript

我知道我可以通过重写 valueOf 创建自己的 Number

function MyNumber(n)
{
    this.n = n;
}

MyNumber.prototype.valueOf = function() { return this.n; };

然后我可以这样做:

var n = new MyNumber(10);

console.log(n + 1); // 11

我想知道如何通过索引访问每个值,就像这样

function MyArray(a)
{
    this.a = a;
}

MyArray.prototype.valueOf = function() { return this.a; };

var a = new MyArray([1, 2, 3]);

console.log(a[0])

这可能吗?怎么办?

最佳答案

您不能在 JavaScript 中重载索引运算符(或任何运算符)。

您可以通过使 MyArray 构造函数将 a[i] 复制到 this[i] 来模仿它,但您不会得到length 的魔力。

关于javascript - 如何让一个类表现得像一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669393/

相关文章:

javascript - 如何在 Clojure 中编写一个保持状态的闭包?

javascript - 将同一个事件监听器分配给多个按钮

javascript - 无法删除 OpenLayers 3 中的功能

javascript - 将每个图像的大小相加

php - 我的网站在整个文件中注入(inject)了 javascript

Javascript/图像电子邮件混淆策略

javascript - 从Django传递值到Ajax,如何识别变量类型?

Javascript : Anonymous function, 获取全局变量

javascript - 结合多个 GeoJSON 对象与 javascript

javascript - 为什么 for 循环在中间参数为 'null' 时终止?