愉快的中秋节要过去了,国庆倒计时两个周!!!

  闲话不多说,那今天我们来看一看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枚举对象属性的方法及其区别的更多相关文章

  1. JavaScript 访问对象属性和方法及区别

    这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...

  2. JS获取对象“属性和方法”的方法

    平时在写的代码过程中,经常会遇到对对象Object的数据处理.而在对对象的数据处理中,操作最频繁的是“数据引用”.“值的修改”.“获取关键字(属性)”.平时最烦的也是“获取关键字”,经常忘记怎么去获取 ...

  3. js object 对象 属性和方法的使用

    //object 对象 属性和方法的使用 var person = new Object(); person.name="张海"; person.age="; perso ...

  4. JS获取对象“属性”的方法

    var testObj= new Object(); testObj.name = "shangguan"; testObj.age= ; testObj.action = fun ...

  5. 浅析JavaScript访问对象属性和方法及区别

    属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸.跳跃等. 在JavaScript中通常使用”."运算符来存取对象的属性的值.或 ...

  6. 【repost】js window对象属性和方法相关资料整理

    window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...

  7. Js基础知识7-JavaScript所有内置对象属性和方法汇总

    对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...

  8. js函数的属性和方法

    js函数的属性和方法 前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解j ...

  9. getSelection、range 对象属性,方法理解,解释

    网上转了一圈发现没有selection方面的解释,自己捣鼓下 以这段文字为例子.. <p><b>法国国营铁路公司(SNCF)20日承认,</b>新订购的2000列火 ...

随机推荐

  1. 分享我的GD32F450的IAP过程

    最近一个项目使用GD32F450VI+ESP8266需要做远程升级,基本参考正点原子IAP的那一章节,但是在GD32F450上却遇到了问题,无法跳转,然后使用正点原子的开发板stm32f429,以及s ...

  2. Spring 集成Kafka(完整版)

    前面的文章我们已经完成了Kafka基于Zookeeper的集群的搭建了.Kafka集群搭建请点我.记过几天的研究已经实现Spring的集成了.本文重点 jar包准备 集成是基于spring-integ ...

  3. iText实现pdf导出

    /** * AsianTest.java */ import java.io.FileOutputStream; import java.io.IOException; import com.lowa ...

  4. Spring基础笔记

    Spring带给了我们什么便利? 注解版本的IOC如何玩? 组件注册 组件注册的过程中有哪些过滤规则? 如何控制组件的作用域(单例多例)? 六种注册组件的方式? 生命周期 什么是bean的生命周期 在 ...

  5. 100天搞定机器学习|day39 Tensorflow Keras手写数字识别

    提示:建议先看day36-38的内容 TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edge ...

  6. thinkphp model 创建之后访问后的错误···

    解决:在php.ini里边先开启mysql的pdo扩展

  7. SpringBoot学习------SpringBoot使用Thymleaf模块访问不了静态页面

    SpringBoot使用Thymleaf模块访问不了静态页面 最近学习SpringBoot的过程中使用了Thymeleaf模块引擎,页面发送请求后老是无法显示静态页面,所有的步骤都是参考资料来执行,自 ...

  8. 苹果电脑基本设置+Linux 命令+Android 实战集锦

    本文微信公众号「AndroidTraveler」首发. 背景 大多数应届毕业生在大学期间使用的比较多的是 windows 电脑,因此初入职场如果拿到一台苹果电脑,可能一时间不能够很快的上手.基于此,这 ...

  9. Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」

    很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...

  10. LoRaWAN调试踩坑心得(一)

    先说两句 在调试和移植的过程中 我们经常想用节点去抓上行包 或者去抓下行包 但在抓取的过程中发现,上行包抓取不到到,或是下行包抓取不到,或者是两个都抓取不到,觉得非常的诡异.明明接收频点.BW和SF都 ...