首页 > web前端 > js教程 > 正文

JavaScript delete 属性的使用

高洛峰
发布: 2017-01-20 10:55:24
原创
1022 人浏览过

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 delete 属性的使用相关文章请关注PHP中文网!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!