JavaScript delete 属性的使用
JavaScript delete 属性的使用
发布时间:2016-12-30 来源:查字典编辑
摘要:delete是删除对象的一个属性,例如对于一个对象,varobj={key:5};deleteobj.key就是删除该对象的key属性,这个...

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教程学习
热门Javascript教程学习
编程开发子分类