gpt4 book ai didi

javascript - 为什么 delete 关键字的行为与预期相反?

转载 作者:可可西里 更新时间:2023-11-01 02:35:54 24 4
gpt4 key购买 nike

在 Chrome 中,在控制台中尝试以下操作。首先

console = 0;

将值 0 分配给 console。然后

console // (prints `0`)

检查我们是否正确覆盖了 console。最后,

delete console

令人惊讶的是,console 现在拥有原始的 Console 对象。实际上,delete 关键字“复活”console,而不是消灭它!

这是预期的行为吗?这是在 Chromium 代码中的什么地方实现的?

最佳答案

MDN's documentation on delete 中所述:

If the delete operator succeeds, it removes the property from the object entirely, although this might reveal a similarly named property on a prototype of the object.

您的delete 只是取消隐藏通过原型(prototype)链继承的原生属性。

一些浏览器有 window 从原生原型(prototype)继承,如果你真的想知道那么多细节,你可以查看源代码以了解属性是如何继承的,但大多数情况下它们就像 JS 一样工作' 拥有。

关于javascript - 为什么 delete 关键字的行为与预期相反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com