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 相关文章推荐
IE8下String的Trim()方法失效的解决方法
Nov 08 Javascript
使用CSS样式position:fixed水平滚动的方法
Feb 19 Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
jquery实现图片切换代码
Oct 13 Javascript
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
Node.js编写CLI的实例详解
May 17 Javascript
浅谈Node 调试工具入门教程
Mar 20 Javascript
javascript的this关键字详解
May 20 Javascript
js实现简单音乐播放器
Jun 30 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 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使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
javascript 面向对象继承
2009/11/26 Javascript
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
Python求导数的方法
2015/05/09 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
python代码编写计算器小程序
2020/03/30 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python configparser模块应用过程解析
2020/08/14 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
error和exception有什么区别
2012/10/02 面试题
善意的谎言事例
2014/02/15 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
分享几个简单MySQL优化小妙招
2022/03/31 MySQL