JavaScript delete 属性的使用


Posted in Javascript onOctober 08, 2009

delete 是删除对象的一个属性,例如对于一个对象,
var obj = {key:5};
delete obj.key就是删除该对象的key属性,这个没什么问题,但当对象的原型prototype对象也存在该属性时,就值得注意了。

var A = function(){}; 
A.prototype.testMe = true; 
var a = new A(); 
//覆盖原型属性 
a.testMe = true; 
if(a.testMe){ 
// 一些关键代码... 
// .... 
//删除这属性 
delete a.testMe; 
} 
//第二段 --------------------------- 
// 在其它模块中 
if(a.testMe){ 
// 一些关键代码... 
// .... 
}

第二段是值得注意的,不要以为a中testMe已尼删除了就不存在了,所以a.testMe就为undefined,即为假,其实它通过原型访问还是存在的,还是true!
这里不留神就中招了。
//附:
检测对象是否存在某属性, 包括原型链的:
if ('attrName' in obj)…
检测对象是否存在某属性,是对象本身的,而非原型链的:
obj.hasOwnProperty('attrName')
Javascript 相关文章推荐
XMLHTTPRequest的属性和方法简介
Nov 23 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
Feb 27 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
如何调试异步加载页面里包含的js文件
Oct 30 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
js操作浏览器的参数方法
Jan 21 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
Nov 10 Javascript
有效的捕获JavaScript焦点的方法小结
Oct 08 #Javascript
Javascript isArray 数组类型检测函数
Oct 08 #Javascript
JavaScript 监听textarea中按键事件
Oct 08 #Javascript
jquery 最简单的属性菜单
Oct 08 #Javascript
Javascript 日期处理之时区问题
Oct 08 #Javascript
学习ExtJS table布局
Oct 08 #Javascript
学习ExtJS accordion布局
Oct 08 #Javascript
You might like
一个ftp类(ini.php)
2006/10/09 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
在Docker上开始部署Python应用的教程
2015/04/17 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python 元类实例解析
2018/04/04 Python
python实现输入数字的连续加减方法
2018/06/22 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
用Python实现数据的透视表的方法
2018/11/16 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
优秀英语专业毕业生求职信
2013/11/23 职场文书
业务员岗位职责范本
2013/12/15 职场文书
银行职员思想汇报
2013/12/31 职场文书
法人单位适用的授权委托书
2014/09/19 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书