javascript确实是一个充满 江湖味道的语言;今天我就来讲一下在这个江湖中的一个小人物!

他可以清理这个江湖中的地痞流氓,有时候也可以和这个江湖中的老大window一较高下;他就是今天我们要讲的无敌小旋风 --delete;

{

name : 'delete',

age : 22,

skill : 'remove',

return : 'true || false'

}

skill:

(1) 删除对象中的属性

(2) 删除没有使用var关键字声明的全局变量

注意:

(1)返回值 布尔类型的值

(2)使用var关键字声明的变量无法被删除

(3)删除对象中不存在的属性没有任何变化,但是返回值为true

(4)不能删除window下面的全局变量(使用var声明),但是可以删除直接定义在window上面的变量属性

(5)不能删除从原型继承下来的属性

对于没有声明的变量,我们可以直接使用delete来进行清理,虽然此时window是这个变量的老大,因为这个变量是投诚过来的,window主人也不是特别的关照吧,over no care!!

然而对于直接使用var声明的全局变量,从诞生就尊奉window就是他们的守护神,delete想直接kill他,window会直接出手保护,任你delete拿出看家本领来,也是 No door!

但是,window对于自己的亲人,使用window直接声明的变量属性,delete只要拿出足够的证据,犯错误的,delete来kill他们,他无话可说,只不过在清除的时候,window也会清除自己亲属;

举个例子:

1字面量声明一个obj对象时候,我们可以直接通过delete来删除对象的属性;

2删除对象中不存在的属性没有任何变化,但是返回值为true

var obj = {
    name : 'Awen',
    age : 26
}
console.log(obj.name); //Awen
delete obj.name;
console.log(delete obj.name); // true
console.log(obj.name); //undefined

3使用var关键字声明的变量无法被删除

var a = 10;
b = 20; //没有使用var关键字声明的变量默认会成为全局变量,
        //全局变量默认都会成为window的属性

console.log(b); //20
delete b;
//console.log(b); //b is not defined

console.log(a); //10
console.log(delete a); //false
console.log(a) //10

4不能删除window下面的全局变量(使用var声明),但是可以删除直接定义在window上面的属性

window.a = 88;
console.log(window.a); //88
delete window.a;
console.log(window.a); //undefine

5不能删除原型继承下来的属性

function People(obj){
    this.name = obj.name;
    this.age = obj.age;
    this.sex = obj.sex;
    this.hobby = obj.hobby;
}
//原型共享属性
People.prototype.leg = 2;
People.prototype.eat = function(){
    console.log(this.name + '在吃饭');            
}
People.prototype.run = function(){
    console.log(this.name + '在北京霍营小区跑步');            
}
var p1 = new People({
    name : 'Awen',
    age : 26,
    sex : '男',
    hobby : '撸代码'
});
var p2 = new People({
    name : 'ShaSha',
    age : 26,
    sex : '女',
    hobby : '撸IOS代码'
})
b = 20;
p1.eat(); //Awen在吃饭
p2.run(); //ShaSha在北京霍营小区跑步
var a = p1.leg;
console.log(delete a); //false
console.log(a) //2
posted on 2017-03-01 01:02  ZhanXie  阅读(287)  评论(0)    收藏  举报