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

  闲话不多说,那今天我们来看一看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. JAVA基础知识(五)数据类型转换

     当使用 +.-.*./.%.运算操作时,遵循如下规则: 1.只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型: 2.如果两个操作数中有一个 ...

  2. template.demo.js

    <!DOCTYPE html><html><head> <title>index</title> <meta charset=&quo ...

  3. 鲜为人知的maven标签解说

    目录 localRepository interactiveMode offline pluginGroups proxies servers mirrors profiles 使用场景 出现位置 激 ...

  4. 我的C语言学习1

    学习是快乐的,尤其是从之前看到一个程序的一头雾水到大致懂了是怎么回事,这个过程是兴奋开心的,让我不断的前进,不能自拔,今天就要结束,总结一下. 1.1-第一个C语言 #include<stdio ...

  5. pythonday05数据类型(三)

    ---恢复内容开始--- 今日内容 1.字典 2.强制转换 3.习题讲解 1.字典 帮助用户去表示一个事物的信息(事物是有多个属性). info = {"name":'刘伟达',' ...

  6. 基于jmeter+perfmon的稳定性测试记录

    1. 引子 最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来. 说起来性能测试算是软件测试行业内,有些特殊的部分.这部分的测试活动,与传统的测试任务差别是比较大的, ...

  7. 《机器学习技法》---GBDT

    1 对决策树使用adaboost 对决策树使用adaboost时,有以下几个问题: (1)adaboost每次更新的样本权重如何应用到决策树中? 由于我们不知道决策树的err目标是什么,因此通常的方法 ...

  8. Java初学心得(一)

    Java中基本组成单元是类,在类中又包含属性和方法. 每个应用程序都包含一个main()方法,main方法里的称为主类. 一,基本变化 ①全局变量:在类中的属性 局部变量:在方法中的属性 ②基本数据类 ...

  9. 后端开发之chrome开发者模式

    1. 场景描述 java开发前后端分离模式越来越流行,后端人员可以直接使用swagger进行接口调试(前后端分离之Swagger2),但是调试的时候,需要设置入参,假如该模块不是软件老王开发的,接别人 ...

  10. 为什么选择B+树作为数据库索引结构?

    背景 首先,来谈谈B树.为什么要使用B树?我们需要明白以下两个事实: [事实1] 不同容量的存储器,访问速度差异悬殊.以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的.有个 ...