delete

可用性

Flash Player 5。

用法

delete reference

参数

reference 要消除的变量或对象的名称。

返回

一个布尔值。

说明

运算符;销毁由 reference 参数指定的对象或变量,如果该对象被成功删除,则返回 true;否则返回 false 值。该运算符对于释放脚本所用的内存非常有用。虽然 delete 是一个运算符,但它通常作为语句使用,如下所示:

delete x;

如果 reference 参数不存在,或者不能被删除,则 delete 运算符可能失败并返回 false。预定义的对象和属性以及用 var 声明的变量不能删除。不能使用 delete 运算符删除影片剪辑。

示例

用法 1:下面的示例创建一个对象并使用它,然后在不再需要时删除它。

account = new Object();
account.name = 'Jon';
account.balance = 10000;

delete account;

用法 2:下面的示例删除对象的一个属性。

// 创建新对象“account”
account = new Object();
// 将属性名称分配给 account 
account.name = 'Jon'; 
// 删除该属性
delete account.name; 

用法 3:下面是删除对象属性的另一个示例。

// 创建长度为 0 的 Array 对象
my_array = new Array(); 
// 向数组中添加一个元素。Array.length 现在是 1
my_array[0] = "abc";
// 向数组中添加又一个元素。Array.length 现在是 2
my_array[1] = "def"; 
// 向数组中添加又一个元素。Array.length 现在是 3
my_array[2] = "ghi";
// my_array[2] 已被删除,但 Array.length 未被更改
delete array[2]; 
trace(my_array.length);

用法 4:下面的示例说明 delete 对于对象引用的行为方式:

// 创建一个新对象,并分配变量 ref1

// 来引用该对象
ref1 = new Object();
ref1.name = "Jody";
// 将引用变量复制到新变量中
// 并删除 ref1
ref2 = ref1;
delete ref1;

如果 ref1 尚未复制到 ref2 中,则当删除 ref1 时,该对象将被删除,因为将没有指向它的引用。如果删除 ref2,则不再有指向该对象的任何引用;将销毁该对象,同时释放它所使用的
内存。

另请参见

var