javascript delete 使用示例代码


Posted in Javascript onMarch 29, 2010

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操作符应用实例

Javascript 相关文章推荐
js实现页面跳转重定向的几种方式
May 29 Javascript
jQuery前端框架easyui使用Dialog时bug处理
Dec 05 Javascript
JavaScript获得页面base标签中url的方法
Apr 03 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
javascript给span标签赋值的方法
Nov 26 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
小程序实现录音功能
Sep 22 Javascript
js异步接口并发数量控制的方法示例
Nov 22 Javascript
JavaScript 判断浏览器是否是IE
Feb 19 Javascript
react 路由Link配置详解
Nov 11 Javascript
JavaScript 格式字符串的应用
Mar 29 #Javascript
js DataSet数据源处理代码
Mar 29 #Javascript
javascript 节点遍历函数
Mar 28 #Javascript
javascript 类型判断代码分析
Mar 28 #Javascript
js chrome浏览器判断代码
Mar 28 #Javascript
JavaScript 学习笔记一些小技巧
Mar 28 #Javascript
JavaScript 学习笔记二 字符串拼接
Mar 28 #Javascript
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
php 获取客户端的真实ip
2009/11/30 PHP
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
PHP类型约束用法示例
2016/09/28 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
Position属性之relative用法
2015/12/14 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
python连接MySQL数据库实例分析
2015/05/12 Python
Python入门之modf()方法的使用
2015/05/15 Python
详解Python中的正则表达式
2018/07/08 Python
python用插值法绘制平滑曲线
2021/02/19 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
《乌塔》教学反思
2014/02/17 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
法人代表任命书范本
2014/06/05 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2014年招生工作总结
2014/11/26 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
贷款承诺书
2015/01/20 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python