Javascript对象的dontdelete属性
-
12-11-2019 - |
题
根据EcmaScript规范,由于dontdelete内部参数,某些对象属性无法删除。例如 :
var y = 5
不应该被删除。但从我能够检查-它是。
这是Mozilla开发人员中心的链接 :https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete
任何想法,为什么这不是工作,因为它应该?
解决方案
有时你必须检查你读的内容。没有 DontDelete
ECMA规范(262,ed5)中的内部参数。也许[Configurable
财产是指什么?该 delete
运算符对变量或函数不起作用,它对对象属性起作用:
var y=5,
z = {y:5};
delete y;
delete z.y;
alert(y); //=> 5
alert(z.y); //=> undefined
从我的回答来看,这 所以问题 出现了,T.J.给出了一个很好的答案。拥挤。
其他提示
根据ES5表17:
createmutablebinding(n,d) 在一个新的可变绑定中创建一个新的可变绑定 环境记录。字符串值n 是界限的文本。如果是 可选的布尔参数d为true 随后可以是绑定 删除。
和10.5声明绑定实例化
- 对于每个varidedecraration和variabledeclarationnoin d在代码中,在 源文本订单 [...] II。打电话给env的setmutablebinding 通过DN,undefined的具体方法, 并严格作为论点。
对我说声明的变量应该不删除。在全局代码中,全局对象是激活对象是变量obejct,所以声明的全局不应该删除。当然,浏览器可能不遵守这个...
var y = 5
alert(delete (y));
.
显示 false 。然后,无法删除。
不隶属于 StackOverflow