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 中的 && 和 || 使用小结
Apr 25 Javascript
基于jQuery试卷自动排版系统
Jul 18 Javascript
简单解析JavaScript中的__proto__属性
May 10 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
Node.js批量给图片加水印的方法
Nov 15 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
node.JS md5加密中文与php结果不一致的解决方法
May 05 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
Node批量爬取头条视频并保存方法
Sep 20 Javascript
Vue动态加载异步组件的方法
Nov 21 Javascript
浅析vue-router实现原理及两种模式
Feb 11 Javascript
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
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 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
详解php中的implements 使用
2017/06/13 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
用javascript做拖动布局的思路
2008/05/31 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
AngularJS内置指令
2015/02/04 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
python flask中动态URL规则详解
2019/11/22 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
Python networkx包的实现
2020/02/14 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
高中微机老师自我鉴定
2014/02/16 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
房产委托公证书样本
2014/04/04 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
学习十八大的心得体会
2014/09/12 职场文书
电工实训报告总结
2014/11/05 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL