delete方法用于删除对象的指定元素(包括变量和函数).
示例(删除对象中的某个属性):
后台返回一个对象:
data: {total: 6, 法人: 1, 可公示: 2, 个人: 1, 国家类型: 1, 非国家类型: 1, 非公示: 0}
而我不需要total这个属性,需要把它删除
delete res.data.total; // true
// 打印 res.data
{法人: 1, 可公示: 2, 个人: 1, 国家类型: 1, 非国家类型: 1, 非公示: 0}
delete的一些特性:
不能删除具有 DontDelete 特性的元素,哪些成员具有 DontDelete 特性呢?
例如: var申明的变量,函数名申明的函数,对象的内置参数,函数的参数等;
// var 申明的变量
var x = 1;
alert(delete x); // false
alert(typeof x); // number
// 函数
function x(){}
alert(delete x); // false
alert(typeof x); // "function"
// 对象的内置参数(例如function的length属性,arguments属性)
function f(){
alert(delete arguments); // false
alert(typeof arguments); // "object"
alert(delete f.length); // false
alert(typeof f.length); // "number"
}
f();
// 函数的参数
function f(param1){
alert(delete param1); // false
alert(typeof param1); // "number"
}
f(12);
// 可以删除 eval 中申明的元素
eval('var x = 1');
alert(delete x); //true
alert(typeof x); //undefined
eval('function f(){}');
alert(delete f); //true
alert(typeof f); //undefined
2. delete 返回值 false 或 true
delete 仅在删除一个不能删除的成员时,才会返回false
而其他情况下,删除如不存在的成员,或删除成功也都会返回ture
也就是说 返回true 并不一定代表删除成功
alert(delete a); // true
//a是一个未申明且不存在的变量。 delete 依然返回的是true