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 String.replace的妙用
Sep 08 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
Nov 05 Javascript
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 Javascript
基于JavaScript实现 网页切出 网站title变化代码
Apr 03 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 Javascript
Vue 按键修饰符处理事件的方法
May 04 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 Javascript
js实现删除li标签一行内容
Apr 16 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
Jun 05 Javascript
JS PHP字符串截取函数实现原理解析
Aug 29 Javascript
ajax jquery实现页面某一个div的刷新效果
Mar 04 jQuery
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 写文本日志实现代码
2010/05/18 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
Destoon模板制作简明教程
2014/06/20 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
keras 读取多标签图像数据方式
2020/06/12 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
2014年采购工作总结
2014/11/20 职场文书
前台接待员岗位职责
2015/04/15 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Python List remove()实例用法详解
2021/08/02 Python
深入理解go slice结构
2021/09/15 Golang
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏