我听说 ES6 现在终于允许子类化 Array。这是一个例子
class Stack extends Array {
constructor() { super() }
top() { return this[this.length - 1]; }
}
var s = new Stack();
s.push("world");
s.push("hello");
console.log(s.top()); // "hello"
console.log(s.length); // 2
当然,这行得通。但至少在 Traceur 中,显式设置长度不会截断数组。当通过 console.log 打印时,输出是对象形式而不是数组形式,这表明有人没有将其视为“真实”数组。
这是 Traceur 如何实现子类化内置对象的问题,还是 ES6 的限制?