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']
搞定收工,明天又要去上班喽,老铁们,得劲吗
JS枚举对象属性的方法及其区别的更多相关文章
- JavaScript 访问对象属性和方法及区别
这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...
- JS获取对象“属性和方法”的方法
平时在写的代码过程中,经常会遇到对对象Object的数据处理.而在对对象的数据处理中,操作最频繁的是“数据引用”.“值的修改”.“获取关键字(属性)”.平时最烦的也是“获取关键字”,经常忘记怎么去获取 ...
- js object 对象 属性和方法的使用
//object 对象 属性和方法的使用 var person = new Object(); person.name="张海"; person.age="; perso ...
- JS获取对象“属性”的方法
var testObj= new Object(); testObj.name = "shangguan"; testObj.age= ; testObj.action = fun ...
- 浅析JavaScript访问对象属性和方法及区别
属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸.跳跃等. 在JavaScript中通常使用”."运算符来存取对象的属性的值.或 ...
- 【repost】js window对象属性和方法相关资料整理
window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...
- Js基础知识7-JavaScript所有内置对象属性和方法汇总
对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...
- js函数的属性和方法
js函数的属性和方法 前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解j ...
- getSelection、range 对象属性,方法理解,解释
网上转了一圈发现没有selection方面的解释,自己捣鼓下 以这段文字为例子.. <p><b>法国国营铁路公司(SNCF)20日承认,</b>新订购的2000列火 ...
随机推荐
- 分享我的GD32F450的IAP过程
最近一个项目使用GD32F450VI+ESP8266需要做远程升级,基本参考正点原子IAP的那一章节,但是在GD32F450上却遇到了问题,无法跳转,然后使用正点原子的开发板stm32f429,以及s ...
- Spring 集成Kafka(完整版)
前面的文章我们已经完成了Kafka基于Zookeeper的集群的搭建了.Kafka集群搭建请点我.记过几天的研究已经实现Spring的集成了.本文重点 jar包准备 集成是基于spring-integ ...
- iText实现pdf导出
/** * AsianTest.java */ import java.io.FileOutputStream; import java.io.IOException; import com.lowa ...
- Spring基础笔记
Spring带给了我们什么便利? 注解版本的IOC如何玩? 组件注册 组件注册的过程中有哪些过滤规则? 如何控制组件的作用域(单例多例)? 六种注册组件的方式? 生命周期 什么是bean的生命周期 在 ...
- 100天搞定机器学习|day39 Tensorflow Keras手写数字识别
提示:建议先看day36-38的内容 TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edge ...
- thinkphp model 创建之后访问后的错误···
解决:在php.ini里边先开启mysql的pdo扩展
- SpringBoot学习------SpringBoot使用Thymleaf模块访问不了静态页面
SpringBoot使用Thymleaf模块访问不了静态页面 最近学习SpringBoot的过程中使用了Thymeleaf模块引擎,页面发送请求后老是无法显示静态页面,所有的步骤都是参考资料来执行,自 ...
- 苹果电脑基本设置+Linux 命令+Android 实战集锦
本文微信公众号「AndroidTraveler」首发. 背景 大多数应届毕业生在大学期间使用的比较多的是 windows 电脑,因此初入职场如果拿到一台苹果电脑,可能一时间不能够很快的上手.基于此,这 ...
- Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」
很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...
- LoRaWAN调试踩坑心得(一)
先说两句 在调试和移植的过程中 我们经常想用节点去抓上行包 或者去抓下行包 但在抓取的过程中发现,上行包抓取不到到,或是下行包抓取不到,或者是两个都抓取不到,觉得非常的诡异.明明接收频点.BW和SF都 ...