for in 和 Object.keys()的区别
for in 和 Object.keys() 都能遍历对象的属性名,但是他们有什么区别呢?
我们先看示例:定义了一个 obj 对象,同时在对象的原型链上添加了一个新属性 sex,对obj分别使用这两种方法有何不同?
可以看到 Object.keys() 对obj对象做了遍历操作 返回了一个数组,且数组元素 是 obj 这个 实例对象的所有属性名 不包含原型链上的属性名!
可以看到 for in 也是对 obj对象的遍历,从打印值可以看到 遍历元素 包含了原型链上的属性名!
总结:区别1:Object.keys()有返回值,且返回值为 实例对象的所有属性名组成的数组
区别2:for in 遍历包含原型链上的属性,而 Object.keys() 只会遍历 实例对象本身的所有属性!
作者: 默然晴天 博客地址:http://www.cnblogs.com/bryanfu/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(fukangkobe@163.com)咨询.