小编kgr*_*een的帖子

ES6代理集属性陷阱未针对数组长度触发

使用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 

这是按规格吗?我找不到任何关于此的信息.

javascript ecmascript-6 es6-proxy

5
推荐指数
1
解决办法
800
查看次数

标签 统计

ecmascript-6 ×1

es6-proxy ×1

javascript ×1