proxy中ownKeys方法返回值无效

问题描述

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个方法确实都进行了拦截,但是返回值并不一样。

阅读 1.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题