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 相关文章推荐
Javascript Tab 导航插件 (23个)
Jun 11 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
Aug 02 Javascript
JavaScript中的ubound函数使用实例
Nov 04 Javascript
基于JavaScript操作DOM常用的API小结
Dec 01 Javascript
Json解析的方法小结
Jun 22 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
Oct 15 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
Oct 28 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
Jan 25 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
Vue实现拖放排序功能的实例代码
Jul 08 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
php mail to 配置详解
2014/01/16 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
Python3 Random模块代码详解
2017/12/04 Python
用Django写天气预报查询网站
2018/10/21 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
python 追踪except信息方式
2020/04/25 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
python中xlutils库用法浅析
2020/12/29 Python
致全体运动员广播稿
2014/02/01 职场文书
项目经理任命书内容
2014/06/06 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
环卫处个人工作总结
2015/03/04 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL