hasOwnProperty作用
2015-11-01 15:46
330 查看
hasOwnProperty 作用是在一个对象里面找是否有某个属性或对象, 但是不会在它的原型中找, 返回boolean类型
一般用来过滤for in循环, 在for in循环中, 会遍历对象原型中的属性, 如果JS代码太多, 封装了一些组件, 大概就是模块化开发那种, 一个对象继承另一个对象, 你或许不知道这个对象继承了哪个对象, 就可以在遍历的时候用hasOwnProperty过滤了
Object.prototype.bar = 1;
var foo = {
moo: 2
};
foo.constructor.prototype.hi = 6;
for (var i in foo) {
console.log(i); // 输出两个属性:bar 和 moo,hi
}
for (var i in foo) {
if (foo.hasOwnProperty(i)) {
console.log("hasOwnProperty过滤后的i-----" + i); //moo
}
}
在这里还涉及到一个知识点, 对象实例设置不了原型属性, 要用到constructor关键字, 还有点比较奇怪的, hasOwnProperty不是js关键字, 所以编译器可能不会变色, 也没有提示, 所以JS也没有保护它, 你也可以自己定义一个hasOwnProperty函数, 所以我们尽量避免这样的命名
一般用来过滤for in循环, 在for in循环中, 会遍历对象原型中的属性, 如果JS代码太多, 封装了一些组件, 大概就是模块化开发那种, 一个对象继承另一个对象, 你或许不知道这个对象继承了哪个对象, 就可以在遍历的时候用hasOwnProperty过滤了
Object.prototype.bar = 1;
var foo = {
moo: 2
};
foo.constructor.prototype.hi = 6;
for (var i in foo) {
console.log(i); // 输出两个属性:bar 和 moo,hi
}
for (var i in foo) {
if (foo.hasOwnProperty(i)) {
console.log("hasOwnProperty过滤后的i-----" + i); //moo
}
}
在这里还涉及到一个知识点, 对象实例设置不了原型属性, 要用到constructor关键字, 还有点比较奇怪的, hasOwnProperty不是js关键字, 所以编译器可能不会变色, 也没有提示, 所以JS也没有保护它, 你也可以自己定义一个hasOwnProperty函数, 所以我们尽量避免这样的命名
相关文章推荐
- CentOS6.3虚拟机配置安装
- Linux常用命令大全
- hadoop 之 InputFormat类 --- NLineInputFormat 实例
- Linux 上好用的 R 语言 IDE
- 一次使用Eclipse Memory Analyzer分析Tomcat内存溢出(转)
- 模仿playnext网站hover后抖动的效果
- php实战之使用curl抓取网站数据
- 类的operator new与operator delete的重载【转】
- CentOS 无法加载 ntfs文件系统类型解决办法
- OptionsMenu按钮不显示的解决方法
- linux中的NFS服务配置
- linux下安装jdk的几种方式
- Apache配置——监听多个端口 对应多个不同的网站目录
- linux shell用法(4)-- shell逻辑符号与c兼容方法
- linux资源数和线程数限制修改方法
- OpenVAS漏洞扫描
- Linux文件系统分析之五(常规文件的表示)
- Linux文件系统分析之四(目录项)
- Linux文件系统分析之三(i节点区)
- Linux文件系统分析之二(超级块,i节点位图和逻辑块位图)