使用JavaScript ES6 Proxies时,直接分配数组索引时不会触发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;
Run Code Online (Sandbox Code Playgroud)
Chrome 51和Firefox 47输出:
set: 0 set: length set: 1
虽然我期望:
set: 0 set: length set: 1 set: length
这是按规格吗?我找不到任何关于此的信息.