昨天在写文章(转载)的时候发现了有些对象的方法是分可枚举性和不可枚举性的。
简单的查了一下资料,今天来捋一捋啥是对象的可枚举啥是不可枚举。
JS中对象转数组方法总结

可枚举性:

对象的每一个属性都有一个描述对象,用来描述和控制该属性的行为,用Object.getOwnPropertyDescriptor方法来获取该描述对象(用Object.defineProperty方法来设置)。
    然后这个Object.defineProperty的方法不是vue双向数据绑定的原理吗!!下次再说…
    描述对象的enumerable属性,称为”可枚举性“,如果该属性为false,就表示某些操作会忽略当前属性。

   let obj = { start: '123' };console.log(Object.getOwnPropertyDescriptor(obj, 'start'))// 输出内容:configurable: trueenumerable: truevalue: "123"writable: true

下面,我们分别介绍下对象属性的描述对象的4个属性:
1.configurable:表示能否通过delete删除此属性,能否修改属性的特性,或能否修改把属性修改为访问器属性,如果直接使用字面量定义对象,默认值为true

2.enumerable: 表示该属性是否可枚举,即是否通过for-in循环或Object.keys()返回属性,如果直接使用字面量定义对象,默认值为true

3.writable: 能否修改属性的值,如果直接使用字面量定义对象,默认值为true
4.value: 该属性对应的值,默认为undefined

经过以上的一些操作,我还是不是很真切的理解可枚举性。那就举一个例子

 let obj = {};Object.defineProperties(obj, {name: {value: '祖宗',enumerable: false,  //不可枚举},age: {value: 88,enumerable: true,   //可枚举}})for (let key in obj) {console.log("key:" + key + ',' + 'value:' + obj[key])}


只有可枚举的内容被for in 循环出来了
有没有感觉清晰了很多!!
(在这里感谢大佬提点!)

这就是个属性,如果false遍历就拿不到了,true遍历就能拿到了…(研究完了发现超简单诶。尴尬)

目前,有四个操作会忽略enumerable为false的属性。
for…in循环:只遍历对象自身的和继承的可枚举的属性。
Object.keys():返回对象自身的所有可枚举的属性的键名。
JSON.stringify():只串行化对象自身的可枚举的属性。
Object.assign(): 忽略enumerable为false的属性,只拷贝对象自身的可枚举的属性。

然后明儿写原生js实现vue中的双向数据绑定~~

JS对象的可枚举属性和不可枚举属性相关推荐

  1. js对象转数组可枚举属性和不可枚举属性

    前言 项目里面很多地方我们需要把数据处理一下才能应用,包括我们拿到的是一个对象,但是我们需要遍历,这个时候就需要把对象转成数组来实现我们的目的了,js对象转数组有几种方法,归纳整理一下- js对象转数 ...

  2. JavaScript对象中的可枚举属性和不可枚举属性

    在JavaScript中,对象的属性有可枚举和不可枚举之分,它是由对象属性描述符enumerable决定的.如果该属性是可枚举性的那么这个属性就能被for-in查找遍历到. 对象的属性描述符 在Jav ...

  3. js的可枚举属性与不可枚举属性

    可枚举属性和不可枚举属性什么意思? 在javascript中,对象的属性可以分为可枚举属性和不可枚举属性,它们的属性由enumerable值决定,可枚举属性决定了这个属性能否被for in 遍历到 判 ...

  4. 可枚举属性和不可枚举属性(for...in循环和Objec.keys()和Object.getOwnPropertyNames())

    可枚举属性和不可枚举属性(for...in循环和Objec.keys()和Object.getOwnPropertyNames()) for...in循环是 遍历对象的每一个可枚举属性,包括原型链上面 ...

  5. JS中的可枚举属性与不可枚举属性的学习以及扩展

    最近在学习对象遍历的方法时总是能看到的两个词,一个是"原型",一个是"枚举属性".一开始感觉自己大概明白"枚举属性"的意思,但是叫我解释却又 ...

  6. Reflect.ownKeys()与Object.keys()区别 以及 JS中的可枚举属性与不可枚举属性

    代码test1: var obj = {} Object.defineProperty(obj, 'method1', {value: function () {alert("Non enu ...

  7. JS中的可枚举属性与不可枚举属性

    一.怎么判断属性是否可枚举 js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,如果你写出这样的代码遍历其中的属性: var num = new Number() ...

  8. JavaScript 对象属性 的可枚举属性与不可枚举属性(enumerable:true/false)

    原文章:https://www.cnblogs.com/kongxy/p/4618173.html 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决 ...

  9. JavaScript中的可枚举属性与不可枚举属性

    在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for-in查找遍历到. 一.怎么判断属性是否可枚举 js中基本包 ...

最新文章

  1. python方格染色_Luogu P3631 [APIO2011]方格染色
  2. GC:垃圾回收机制及算法
  3. frame中src怎么设置成一个变量_webpack中Css的处理
  4. 关于ashx的基本应用
  5. linux初学者-软件安装与管理篇
  6. 抢占云安全管理高地 启明星辰先发云SOC
  7. 扫雷游戏网页版_佛性扫雷 炸不炸随缘
  8. html下拉菜单栏代码
  9. iis服务器版本信息泄漏,IIS短文件和文件夹泄漏漏洞
  10. 面试官这么表现就有戏?不一定哦!
  11. 制作仅在xy方向有周期性的夹层结构,且不使用约束平板
  12. 运筹说 第57期 | 整数规划的分支定界法
  13. 边缘设备、系统及计算杂谈(1)
  14. redis存取数据流
  15. 【黑盒测试】场景法和错误推断法
  16. matlab wc wp,MATLAB_IIR_带通通滤波
  17. 物联网介绍及RFID
  18. 全球最大游戏外挂案件告破!案值达5亿,销往上百个国家和地区
  19. idea无法导入主题jar包_IDEA非常重要的一些设置项 →一连串问题差点让我重新用回Eclipse...
  20. 『论文笔记』Are VQA Systems RAD? Measuring Robustness to Augmented Data with Focused Interventions

热门文章

  1. android和ios系统的内存,内存越大越流畅? 为什么安卓和iOS内存差距那么大
  2. 企业微信和视频号的关联
  3. vmware使用和5G了解
  4. 计算机桌面图标教案,《认识“我的电脑”》教学设计
  5. 新东方走了一个男的说单口相声的,又来一个女的唱歌的
  6. kotlin Android studio 投骰子app应用简单例子
  7. 深度学习,自然语言处理和表征方法
  8. 浅谈node中的resolve
  9. CMD和ENTRYPOINT区别
  10. Broken pipe产生原因分析