我想在Javascript中提出有关'删除'操作符的问题
为什么
delete window.document; // returns false
但
delete navigator.geolocation; // returns true
我尝试navigator
的其他属性,但仍会返回true
我已经检查了webkit中的IDL,
document
和navigator
都是只读的
他们没有DontDelete属性
但为什么我可以删除一个而不是另一个???
答案 0 :(得分:1)
如果您想了解delete
运算符,请将注意力集中在javascript spec部分11.4.1
在某些情况下,操作员应在不改变任何对象的情况下评估true
。
从8.12.7开始,运算符检查检查属性描述符的内部[[Configurable]]
属性以强制执行只读属性。