gpt4 book ai didi

javascript - 为什么 delete 运算符返回 true 即使属性没有从对象中删除

转载 作者:行者123 更新时间:2023-11-29 18:21:09 26 4
gpt4 key购买 nike

>>> var par = {a: 1, b: 2};
undefined
>>> var ch = Object.create(par);
undefined
>>> delete ch.a
true
>>> ch
Object { a=1, b=2}

最佳答案

您误解了 delete 返回的内容:

Throws in strict mode if the property is an own non-configurable property (returns false in non-strict). Returns true in all other cases. (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)

delete ch.a 尝试在 ch 中定位属性 a,失败(因为 ch 没有t have such own property), 什么也不做并愉快地返回 true。如果您编写 delete ch.foobar,结果将是相同的。但是,如果您尝试使用不可配置的属性(例如 delete ch.__proto__),结果将为 false

关于javascript - 为什么 delete 运算符返回 true 即使属性没有从对象中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676080/

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