我将一个对象包装在一个代理中,然后遍历它。如何控制它迭代的键?
如果我不覆盖密钥,代理将起作用:
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"
记录的一部分。
显然enumerate
ES6 中有一个陷阱,但它已从 ES7 中删除。
是否仍然可以for...in
使用代理控制循环?为什么enumerate
从规范中删除?