【发布时间】:2021-12-05 03:56:46
【问题描述】:
我想实现索引器以从数据属性中获取元素,索引为 JavaScript 数组。我听说过 ES6 代理,但我无法在课堂上实现它。现在有可能还是我应该等待更多 ES7 的到来。
class Polygon {
constructor() {
this.data = new Set(arguments)
}
[Symbol.iterator](){
return this.data[Symbol.iterator]()
}
add(vertex){
this.data.add(vertex)
}
remove(vertex){
this.data.delete(vertex)
}
get perimeter(){
}
get area(){
}
}
let poly = new Polygon()
let first_vertex = poly[0]
【问题讨论】:
-
为什么不直接继承数组?
-
@the8472 如果使用转译器,这可能无法正常工作。与问题中
Set的用法不同,赋值也允许重复值。 -
我认为这个例子只是一个玩具例子,因为实际上对一个集合进行计数迭代以获得第 N 个元素是相当低效的
-
@the8472 公平点。同意,尽管子类化 Array 现在是一个可行的选择
标签: ecmascript-6