根据这个答案,我想创建自己的子类Array
QArray = function() {
Array.apply(this, arguments);
};
QArray.prototype = new Array();
QArray.prototype.constructor = QArray;
它按预期工作,方法调用有效,但构造函数没有链接到 Array。
// test constructor chaining
q = new QArray('1', '2', '3');
assert.equals('1', q[0]); // => undefined
assert.equals(3, q.length); // => 0
q = new QArray(10);
assert.equals(10, q.length); // => 0
如果我替换QArray
为 plain ,则此测试通过Array
。不知怎的Array
,似乎是个特例。(我在 Javascript 1.5 的 Rhino 1.6 中运行它。)如何修复我的自定义子类 Array?