我将一个对象包装在一个代理中,然后遍历它。如何控制它迭代的键?
如果我不覆盖密钥,代理将起作用:
var obj = {"hello": "world"}
var proxy = new Proxy(obj, {})
for (var key in proxy){
console.log(key)
}
// logs "Hello"
但是,如果我更改ownKeys处理程序中的键,则不会记录任何内容。
var obj = {"hello": "world"}
var proxy = new Proxy(obj, {
ownKeys: function(){
return ["a", "b"]
}
})
for (var key in proxy){
console.log(key)
}
// Logs nothing
如果我返回"hello"作为ownKeys唯一"hello"记录的一部分。
显然enumerateES6 中有一个陷阱,但它已从 ES7 中删除。
是否仍然可以for...in使用代理控制循环?为什么enumerate从规范中删除?
