问题描述
proxy中的ownKeys使用时,对于Object.getOwnPropertySymbols() Object.keys()
返回值并不是ownKeys方法的返回值。
问题出现的环境背景及自己尝试过哪些方法
ts-node
相关代码)
let p = new Proxy({z: 1}, {
ownKeys: function (...arg) {
return ['z', 'f', 'c']
}
})
console.log(Object.getOwnPropertyNames(p))// [ 'z', 'f', 'c' ]
console.log(Object.getOwnPropertySymbols(p)) // []
console.log(Object.keys(p)) //['z']
你期待的结果是什么?实际看到的错误信息又是什么?
根据mdn描述应该3个都返回[ 'z', 'f', 'c' ],但是并不是
将ownKeys
中打log,3个方法确实都进行了拦截,但是返回值并不一样。