javascript delete example
复制代码 代码如下:
var flower={};
flower.name="oop";
delete flower.name; //true
alert(flower.name); //undefined
创建一个名为flower的对象
flower具有成员name,值"oop";
delete 操作 删除这个成员
删除成功,已不存在flower.name这个成员
javascript delete example 2
复制代码 代码如下:
alert(isNaN(5)); //false
delete isNaN; //true
alert(isNaN(5)); //undefined
delete 操作符 甚至可以删除全局对象Global的成员
不能删除 var 申明的变量
复制代码 代码如下:
var flower="monkey";
delete flower; //false
alert(flower); // "monkey"
用 var 申明的变量,delete 后 返回false.并没有删除成功 变量依然存在;
注意:delete仅在删除一个不能删除的成员是,才会返回false
ie下不能删除宿主对象下的变量在ie浏览器下
复制代码 代码如下:
window.flower="monkey";
delete flower; //抛出异常
alert(flower);
在ff浏览器下
复制代码 代码如下:
window.flower="monkey";
delete flower; //true
alert(flower) //undefined
可以看到 delete window的成员时,浏览器表现不一致
window是javascript的宿主对象
宿主对象可以是javascript执行环境自己定义的
在ie6-8浏览器中,不能delete window.flower,浏览器会提示你"对象不支持该操作",也就是不能删除window下成员
不能删除用函数名申明的函数
复制代码 代码如下:
function flower(){}
delete flower; //true
alert(flower);//undefined
结果显示 delete 不能删除 用函数名申明的函数
不能删除继承自原型的成员
复制代码 代码如下:
function flower(){};
flower.prototype.name="monkey";
var a1=new flower();
a1.name="a1_monkey"
alert(a1.name);//"a1_monkey"
delete a1.name;//ture
alert(a1.name);//"monkey"
a1是flower的实例,通过实例来删除原型的和父类的成员是不可行的~
如果一定要删除该属性("这里以name为例"),只能对原型进行操纵
delete a1.constructor.prototype.name;
DontDelete 特性delete 不能删除具有DontDelete特性的成员
那什么是具有DontDelete特性的成员呢
例如var 申明的变量,函数名申明的函数,Function对象的length等极少数几个拥有DontDelete特性
delete 返回值false or true
delete 仅在删除一个不能删除的成员时,才会返回false
而其他情况下,删除如不存在的成员,或删除成功也都会返回ture
也就是说 返回true 并不一定代表删除成功
如 : 执行代码 alert(delete a); // true
a是一个未申明且不存在的变量。 delete 依然返回的是true
不同浏览器器之间的差异
复制代码 代码如下:
(function(){
delete arguments; // false ,而在Mozilla中返回的是true
typeof arguments; // "object"
})();
巧妙的利用eval删除var 申明的变量
复制代码 代码如下:
eval('var flower = 1');
alert(window.flower) //1
alert(flower)// 1
delete flower; // true
alert(flower); // "undefined"
var a=function(){};
eval('var a = function(){}');
delete a; // true
alert(a); // "undefined"
eval后的全局变量,变得不具备DontDelete特性,可以用eval删除;
最后补充一条神奇的~睡觉前刚测试
window.flower=1;
delete flower 时对象会不支持此操作
我们可以用 with(window){flower=1}; 然后 delete flower (记住是delete flower,不是delete window.flower ,ie不允许那么做)
这样 window.flower就被删除了 :)
JavaScript delete操作符应用实例
复制代码 代码如下:
var flower={};
flower.name="oop";
delete flower.name; //true
alert(flower.name); //undefined
创建一个名为flower的对象
flower具有成员name,值"oop";
delete 操作 删除这个成员
删除成功,已不存在flower.name这个成员
javascript delete example 2
复制代码 代码如下:
alert(isNaN(5)); //false
delete isNaN; //true
alert(isNaN(5)); //undefined
delete 操作符 甚至可以删除全局对象Global的成员
不能删除 var 申明的变量
复制代码 代码如下:
var flower="monkey";
delete flower; //false
alert(flower); // "monkey"
用 var 申明的变量,delete 后 返回false.并没有删除成功 变量依然存在;
注意:delete仅在删除一个不能删除的成员是,才会返回false
ie下不能删除宿主对象下的变量在ie浏览器下
复制代码 代码如下:
window.flower="monkey";
delete flower; //抛出异常
alert(flower);
在ff浏览器下
复制代码 代码如下:
window.flower="monkey";
delete flower; //true
alert(flower) //undefined
可以看到 delete window的成员时,浏览器表现不一致
window是javascript的宿主对象
宿主对象可以是javascript执行环境自己定义的
在ie6-8浏览器中,不能delete window.flower,浏览器会提示你"对象不支持该操作",也就是不能删除window下成员
不能删除用函数名申明的函数
复制代码 代码如下:
function flower(){}
delete flower; //true
alert(flower);//undefined
结果显示 delete 不能删除 用函数名申明的函数
不能删除继承自原型的成员
复制代码 代码如下:
function flower(){};
flower.prototype.name="monkey";
var a1=new flower();
a1.name="a1_monkey"
alert(a1.name);//"a1_monkey"
delete a1.name;//ture
alert(a1.name);//"monkey"
a1是flower的实例,通过实例来删除原型的和父类的成员是不可行的~
如果一定要删除该属性("这里以name为例"),只能对原型进行操纵
delete a1.constructor.prototype.name;
DontDelete 特性delete 不能删除具有DontDelete特性的成员
那什么是具有DontDelete特性的成员呢
例如var 申明的变量,函数名申明的函数,Function对象的length等极少数几个拥有DontDelete特性
delete 返回值false or true
delete 仅在删除一个不能删除的成员时,才会返回false
而其他情况下,删除如不存在的成员,或删除成功也都会返回ture
也就是说 返回true 并不一定代表删除成功
如 : 执行代码 alert(delete a); // true
a是一个未申明且不存在的变量。 delete 依然返回的是true
不同浏览器器之间的差异
复制代码 代码如下:
(function(){
delete arguments; // false ,而在Mozilla中返回的是true
typeof arguments; // "object"
})();
巧妙的利用eval删除var 申明的变量
复制代码 代码如下:
eval('var flower = 1');
alert(window.flower) //1
alert(flower)// 1
delete flower; // true
alert(flower); // "undefined"
var a=function(){};
eval('var a = function(){}');
delete a; // true
alert(a); // "undefined"
eval后的全局变量,变得不具备DontDelete特性,可以用eval删除;
最后补充一条神奇的~睡觉前刚测试
window.flower=1;
delete flower 时对象会不支持此操作
我们可以用 with(window){flower=1}; 然后 delete flower (记住是delete flower,不是delete window.flower ,ie不允许那么做)
这样 window.flower就被删除了 :)
JavaScript delete操作符应用实例
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“javascript delete 使用示例代码”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。