我听说ES6现在最终允许对数组进行子类化。这里是一个示例,由以下人员提供:
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的限制?