gpt4 book ai didi

ecmascript-6 - ES6类实现类似于数组的索引器

转载 作者:行者123 更新时间:2023-12-04 03:55:20 25 4
gpt4 key购买 nike

我想实现索引器以从具有索引的数据属性中获取元素作为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]

最佳答案

AFAIK没有提议将“索引”到任意对象中,因此是的,您将不得不使用代理。

我无法真正测试这一点,因为似乎没有环境同时支持类和代理,但是从理论上讲,您必须从构造函数中返回新的代理对象。已在Chrome v52中测试。

例子:

class Test {
constructor(data) {
let self = this;
this.data = data;
this.foo = 'bar';

return new Proxy(this, {
get(target, prop) {
if (Number(prop) == prop && !(prop in target)) {
return self.data[prop];
}
return target[prop];
}
});
}
}

var test = new Test([1,2,3]);
console.log(test[0]); // should log 1
console.log(test.foo); // should log 'bar'

关于ecmascript-6 - ES6类实现类似于数组的索引器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32622970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com