JavaScript中遍历对象的property的3种方法介绍


Posted in Javascript onDecember 30, 2014

在JavaScript中,可以用三种方法来遍历对象的property:

1.for/in。可以使用for/in语句遍历对象自身的property(Own Property)及其从原型对象处继承的property,只有enumerable的property才会被遍历到。

2.Object.keys()。可以将对象作为参数传入Object.keys(),Object.keys()语句将返回由所有property名称字符串所组成的数组。Object.keys()语句仅返回对象自身的(Own Property)且enumerable的property。该语句仅在ECMAScript 5标准中有效。

3.Object.getOwnPropertyNames()。可以将对象作为参数传入Object.getOwnPropertyNames(),与Object.keys()一样,该语句将返回由所有property名称字符串所组成的数组。与Object.keys()不同的是,Object.getOwnPropertyNames()语句将返回所有对象自身的property(Own Property),而不论其是否为enumerable。该语句仅在ECMAScript 5标准中有效。

综合上述信息,总结成图如下:

JavaScript中遍历对象的property的3种方法介绍

实验:

var o = {x:1, y:2};

var a = Object.create(o);

a.z = 3;
for(p in a){

  console.log(p);

}//z x y

console.log(Object.keys(a));//["z"]

console.log(Object.getOwnPropertyNames(a));//["z"]
Javascript 相关文章推荐
jquery pagination插件实现无刷新分页代码
Oct 13 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
Aug 14 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 Javascript
详解elementUI中input框无法输入的问题
Apr 27 Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 #Javascript
JavaScript中的对象的extensible属性介绍
Dec 30 #Javascript
JavaScript中的对象序列化介绍
Dec 30 #Javascript
JavaScript中的数组特性介绍
Dec 30 #Javascript
JavaScript中数组成员的添加、删除介绍
Dec 30 #Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 #Javascript
JavaScript中的数组操作介绍
Dec 30 #Javascript
You might like
php学习笔记之面向对象编程
2012/12/29 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php中HTTP_REFERER函数用法实例
2014/11/21 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
初识Node.js
2015/03/20 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
给Python入门者的一些编程建议
2015/06/15 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
详解django2中关于时间处理策略
2019/03/06 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
简单介绍django提供的加密算法
2019/12/18 Python
Python如何实现线程间通信
2020/07/30 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
应届大学生求职信
2013/12/01 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
五四演讲稿范文
2014/09/03 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
Mysql中mvcc各场景理解应用
2022/08/05 MySQL