delete运算符

来源:互联网 发布:ui设计需要什么软件 编辑:程序博客网 时间:2024/06/04 18:51
最近在看《JavaScript权威指南》,遇到delete,以前写代码的时候没用过,现整理书上的内容如下(内容略有删减,内容为手打,可能有部分错误):

delete运算符是个一元运算符,它将删除运算数所指定的对象的属性、数组元素或变
量。如果删除操作成功,它将返回true,如果运算数不能被删,它将返回false。井非所有的属性和变量都是可以删除的,某些内部的核心属性和客户端属性不能删除,用var语句声明的用户定义变星也不能被删除。如果delete使用的运算数是一个不存在的属性,它将返回true下面是一些使用该运算符的例子:
var o={x:1,y:2};
delete o.x;//define a variable;initialize it to an ovject
typeof o.x;//delete one of the object properties;return true
delete o.x;//property does not exist;returns "undefined"
delete o;//can't delete a declared variable; returns false
delete 1;//can't delete an integer; retuns true
x =1;//implicitly declare a variable without var keyword
delete x;//can delete this kind of variable; returns true
x;//runtime error; x is not define
注意,删除属性变量或数组元素不只是把它们的值设置为undefined。当删除一个属性后,该属性将不再存在。
delete所能影响的只是属性值,并不能影响被这些属性引用的对象,理解这一点很重要。考虑如下的代码:
var my = new Object();//create an object named "my"
my.hire = new Date();//my.hire refers to a Date Object
ma.fire = my.hire;//my.fire refers to the same object
delete my.hire;//hire property is deleted; returns true
document.write(my.fire);//but my.fire still refers to the Date object

出处:《JavaScript权威指南》 第五版 机械工业出版社 第五章 第10节 P87

0 0