为什么 JavaScript 严格模式下不允许删除?

2024-04-21

我对 javascript 还很陌生。我注意到,显然在“使用严格”模式下操作时,您无法删除对象。我不太喜欢删除某些东西(因为从理论上讲,作用域无论如何都应该处理这个问题),但我想知道删除此功能背后的动机是什么?


The delete在严格模式下仍然允许使用该语句,但它的某些特定用法是错误的。它仅允许用于对象属性,而不是简单名称,并且仅允许用于可删除的对象属性。

Thus

var a = {x: 0};
delete a.x;

很好,但是

delete Object.prototype;

不是,也不是

delete a;

(后者实际上是语法级错误,而尝试删除不可删除的属性是运行时错误。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 JavaScript 严格模式下不允许删除? 的相关文章

随机推荐