使用 JavaScript ES6 代理时,array.length 的 set 属性陷阱在直接分配数组索引时不会触发。
例如:
const proxy = new Proxy([], {
set: function(obj, name, value) {
console.log(`set: ${name}`);
obj[name] = value;
return true;
}
});
proxy.push(0);
proxy[1] = 1;
Chrome 51 和 Firefox 47 输出:
设置:0 设置:长度 套装:1
虽然我期望:
设置:0 设置:长度 套装:1 设置:长度
这是每个规格吗?我找不到这方面的任何信息。