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静态的动态
Sep 18 Javascript
Javascript模块模式分析
May 16 Javascript
javascript div 弹出可拖动窗口
Feb 26 Javascript
js浮动图片的动态效果
Jul 10 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
Jan 05 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
JS中type="button"和type="submit"的区别
Jul 04 Javascript
使用JS获取SessionStorage的值
Jan 12 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 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中将网址转换为超链接的函数
2011/09/02 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
ThinkPHP模型详解
2015/07/27 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
DOM精简教程
2006/10/03 Javascript
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
javascript编程起步(第四课)
2007/02/27 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
livereload工具实现前端可视化开发【推荐】
2016/12/23 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
工艺工程师工作职责
2013/11/23 职场文书
教师辞职报告范文
2014/01/20 职场文书
质量月口号
2014/06/20 职场文书
单位推荐信范文
2015/03/27 职场文书
劳动仲裁调解书
2015/05/20 职场文书
小兵张嘎观后感
2015/06/03 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
基于Python实现射击小游戏的制作
2022/04/06 Python