JS枚举对象属性的方法及其区别
时间:2019-09-15
本文章向大家介绍JS枚举对象属性的方法及其区别,主要包括JS枚举对象属性的方法及其区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
愉快的中秋节要过去了,国庆倒计时两个周!!!
闲话不多说,那今天我们来看一看JS中枚举对象属性的方法有哪些以及他们的区别
首先在JS里面枚举对象属性一共有三种方法
for in: 会遍历对象中所有的可枚举属性(包括自有属性和继承属性)
Object.keys(): 会返回一个包括所有的可枚举的自有属性的名称组成的数组
Object.getOwnPropertyNames(): 会返回自有属性的名称 (不管是不是可枚举的)
下面我们一个一个的拆解开来看一下
for in:
会遍历对象中所有的可枚举属性(包括自有属性和继承属性)
例:
var obj = { itemA: 'itemA', itemB: 'itemB' } var newObj = Object.create(obj) // 使用Object.create创建一个原型为obj的对象 newObj.newItemA = 'newItemA' newObj.newItemB = 'newItemB' for(i in newObj){ console.log(i) }
输出结果为:
newItemA newItemB itemA itemB
现在我们将其中的一个属性变为不可枚举属性
var obj = { itemA: 'itemA', itemB: 'itemB' } var newObj = Object.create(obj) // 使用Object.create创建一个原型为obj的对象 newObj.newItemA = 'newItemA' newObj.newItemB = 'newItemB' Object.defineProperty(newObj,'newItemA',{ enumerable: false }) for(i in newObj){ console.log(i) }
输出结果:
newItemB itemA
itemB
Object.keys():
会返回一个包括所有的可枚举的自有属性的名称组成的数组
例:
var obj = { itemA: 'itemA', itemB: 'itemB' } var newObj = Object.create(obj) // 使用Object.create创建一个原型为obj的对象 newObj.newItemA = 'newItemA' newObj.newItemB = 'newItemB' Object.defineProperty(newObj,'newItemA',{ enumerable: false }) var result = Object.keys(newObj) console.log(result)
结果:
['newItemB']
Object.getOwnPropertyNames():
会返回自有属性的名称 (不管是不是可枚举的)
例:
var obj = { itemA: 'itemA', itemB: 'itemB' } var newObj = Object.create(obj) // 使用Object.create创建一个原型为obj的对象 newObj.newItemA = 'newItemA' newObj.newItemB = 'newItemB' Object.defineProperty(newObj,'newItemA',{ enumerable: false }) var result = Object.getOwnPropertyNames(newObj) console.log(result)
结果:
['newItemA','newItemB']
搞定收工,明天又要去上班喽,老铁们,得劲吗
原文地址:https://www.cnblogs.com/suihang/p/11523664.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MySQL 最佳实践:gh-ost 工具使用详解
- 如何将 Hexo 博客部署到云开发静态网站托管
- WordPress 静态化部署到云开发网站托管
- 如何用云应用快速部署一个nodebb的开源论坛
- 【一起学系列】之装饰器模式:不改代码增强功能?
- Hello!GitHub 好用好玩值得收藏的开源项目集合~
- 【一起学系列】之工厂模式:产品?产品族?
- 再见,Navicat!同事安利的这个IDEA的兄弟,真香!
- 【一起学系列】之单例模式:只推荐三种~
- 【一起学系列】之命令模式:封装一个简单Jedis?
- 轻松学Pytorch-实现自定义对象检测器
- Elasticsearch 升级 7.x 版本后,我感觉掉坑里了!
- 【一起学系列】之适配器模式:还有外观模式呢
- 【翻译】200行代码讲透RUST FUTURES (5)
- Unable to preventDefault inside passive event listener