根据EcmaScript规范,由于DontDelete内部参数,某些对象属性无法删除。例如:JavaScript对象的DontDelete属性
var y = 5
不应该删除的。但从我能够检查 - 这是。
这里是在Mozilla开发者中心的链接: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete
为什么这是行不通的,因为它应该任何想法?
根据EcmaScript规范,由于DontDelete内部参数,某些对象属性无法删除。例如:JavaScript对象的DontDelete属性
var y = 5
不应该删除的。但从我能够检查 - 这是。
这里是在Mozilla开发者中心的链接: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete
为什么这是行不通的,因为它应该任何想法?
有时您必须检查您阅读的内容。 ECMA规范中没有DontDelete
内部参数(262,ed 5)。也许[Configurable
]属性是指?该delete
操作上的变量或函数不能正常工作,它适用于对象的属性:
var y=5,
z = {y:5};
delete y;
delete z.y;
alert(y); //=> 5
alert(z.y); //=> undefined
从我的答案,这SO question出现,并从T.J.一个很好的答案克劳德。
根据ES5表17:
CreateMutableBinding(N,d) 在 环境记录创建一个新的可变绑定。字符串值N 是绑定名称的文本。如果 可选的布尔参数D为真 ,则绑定可能会随后被删除,其中 。
和在10.5声明绑定实例化
- 对于每个代码VariableDeclaration和VariableDeclarationNoIn d,在 源文本顺序做 [...] II。调用env的SetMutableBinding 具体方法传递dn,undefined, 和strict作为参数。
这对我说,声明的变量应该是不可删除的。在全局代码中,全局对象是变量obejct的激活对象,所以声明的全局变量不应该是可删除的。当然,浏览器可能不会坚持...
http://perfectionkills.com/2010/01/猜它已解决 – elreyano 2011-05-13 07:15:16