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 相关文章推荐
onpropertypchange
Jul 01 Javascript
JavaScript 学习点滴记录
Apr 24 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
自定义require函数让浏览器按需加载Js文件
Nov 24 Javascript
jquery dataview数据视图插件使用方法
Dec 23 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
小程序日历控件使用方法详解
Dec 29 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 Javascript
Vue分页插件的前后端配置与使用
Oct 09 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中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
js的三种继承方式详解
2017/01/21 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python实现的双色球生成功能示例
2017/12/18 Python
python 编码规范整理
2018/05/05 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
校庆标语集锦
2014/06/25 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
硕士论文致谢范文
2015/05/14 职场文书
音乐研修感悟
2015/11/18 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
Python 如何安装Selenium
2021/05/06 Python