JSON.parse('{"__proto__":{"a":1}}')
{__proto__:{a:1}}
第一句 != 第二句
JSON.parse('{"__proto__":{"a":1}}').a == undefined
{__proto__:{a:1}}.a == 1
这是为什么,JSON.parse 做了什么操作,谢谢!
JSON.parse('{"__proto__":{"a":1}}')
{__proto__:{a:1}}
第一句 != 第二句
JSON.parse('{"__proto__":{"a":1}}').a == undefined
{__proto__:{a:1}}.a == 1
这是为什么,JSON.parse 做了什么操作,谢谢!
具体JSON.parse在底层做了什么可以看标准
https://www.ecma-internationa...
另外1703的edge不知道有什么奇怪的缓存机制,一会打印不出来,一会能打印出来
分别log了 JSON.parse('{"__proto__":{"a":1}}') 和 {__proto__:{a:1}} ,结果如上,看上去 JSON.parse 会忽略 ‘__proto__’ 属性;
然后试了 ‘_proto__’ ‘__proto_’ 都能成功 log 出来,不明所以
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
参考楼上的标准,根据24.3.1.1 推测出来
这就是你想要的