JavaScript delete 属性的使用


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')



相关阅读:
phpMyAdmin下将Excel中的数据导入MySql的图文方法
删除无限级目录与文件代码共享
javascript权威指南 学习笔记之javascript数据类型
javascript一些实用技巧小结
Js网页另存为实现代码
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
php echo()和print()、require()和include()函数区别说明
PHP 和 MySQL 基础教程(三)
Mysql 数据库常用备份方法和注意事项
Jquery升级新版本后选择器的语法问题
用JavaScript自动生成等比例所略图
javascript开发技术大全 第4章 直接量与字符集
VBS教程:VBscript语句-Do...Loop 语句
PHP开启gzip页面压缩实例(内置+自写函数)
快速导航

Copyright © 2016 phpStudy |