Javascript Delect关键字

JavaScript中,有一个Delete关键字。语法

delete object.property
delete object['property']
delete object[index]
delete property // deletes properties of the global object, or, 
                // using the with statement, properties of the referenced object

简单来说,delete得了会返回true,否则返回false。那么现在就分,有哪些可以delete,哪些不能delete。

首先,我们要知道,每一个变量属性都可以有任意多个属性,ReadyOnly,....,DontDelte。一但带上了dontdelete,就表明这是不能删掉了,而且这个属性从开始创建就会一直跟着,是不能被改变的。

在声明变量或者函数的时候,他们都会变成了当前的上下文对象属性,有点抽象。对于函数来说,它的变量被称为活动对象,对于全局代码(也就是script里的代码)就是变量对象,而值得注意的是,再次申明,这些属性是在创建就有了DontDelete标记,是不能更改的。所以delete以上情况会返回false。

对于显示或者隐式的赋值语句产生的属性都不带有DontDelete这个标记,另外内建对象也会自带DontDelete,像函数的arguments和length这些。

参考资料: http://juliankim.iteye.com/blog/644131
资料原谅: http://perfectionkills.com/understanding-delete/ 需要FQ


posted @ 2012-11-02 10:57  e.e.p  阅读(334)  评论(0编辑  收藏  举报