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 セット:長さ
これは仕様ごとですか?これに関する情報は見つかりませんでした。