我知道我可以通过重写 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/