Tag: es6 map

意外在ES6代理中设置陷阱行为

let ar = []; let p = new Proxy(new Map(), { get: (o, k) => { ar.push(1) return Reflect.get(o, k).bind(o) }, set: (o, k, v) => { ar.push(2) return Reflect.set(o, k, v) } }); p.set(1, 2) p.get(1) console.log(ar) //Outputs [1,1] 我试图拦截两个集合,并得到一个Map对象的操作。 我没有办法试图扩展/子类的地图。 在代理Map对象的过程中,我遇到了这个奇怪的意外行为,在上面的代码中没有触发set trap,而是get trap被激发了两次! 我进一步按照以下方式loggingget陷阱中的k(key)值; //same code above get: (o, k) => { console.log(k) […]