JavaScript delete 属性的使用
程序员文章站
2022-04-23 13:29:18
...
delete 是删除对象的一个属性,例如对于一个对象,
var obj = {key:5};
delete obj.key就是删除该对象的key属性,这个没什么问题,但当对象的原型prototype对象也存在该属性时,就值得注意了。
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中文网!
下一篇: Hessian通讯协议【附PHP源代码】
推荐阅读
-
如何使用JavaScript获取单选按钮的选择状态
-
使用async属性异步加载执行JavaScript的方法
-
现代JavaScript使用技巧之ES6中的简写语法
-
Android开发之使用ExifInterface获取拍照后的图片属性
-
用JavaScript获取伪元素(Pseudo-Element)属性的方法详解
-
javascript怎么修改元素的style属性
-
javascript怎么删除元素的hidden属性
-
分享CSS3里box-shadow属性的使用方法,包括内阴影box-shadow:inset
-
使用Rhino让java执行javascript的方法实例
-
关于javascript冒泡与默认事件的使用详解