js对象中什么是可枚举性(enumerable)?[通俗易懂]

js对象中什么是可枚举性(enumerable)?[通俗易懂]概念可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for…in循环之中。具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性。*for..in循环*Object.keys方法*JSON.stringify方法varo={a:1,b:2};o.c=3;Object.definePropert

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

概念

可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for…in循环之中。具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性。
* for..in循环
* Object.keys方法
* JSON.stringify方法

var o = {a:1, b:2};o.c = 3;Object.defineProperty(o, 'd', {  value: 4,  enumerable: false});o.d// 4for( var key in o ) console.log( o[key] ); // 1// 2// 3Object.keys(o)  // ["a", "b", "c"]JSON.stringify(o // => "{a:1,b:2,c:3}"var ab = Object.getOwnPropertyNames(o);          console.log(ab)            // (4) ["a", "b", "c", "d"]            // 0            // :            // "a"            // 1            // :            // "b"            // 2            // :            // "c"            // 3            // :            // "d"            // length            // :            // 4            // __proto__            // :            // Array(0)上面代码中,d属性的enumerable为false,所以一般的遍历操作都无法获取该属性,使得它有点像“秘密”属性,但还是可以直接获取它的值。至于for...in循环和Object.keys方法的区别,在于前者包括对象继承自原型对象的属性,而后者只包括对象本身的属性。如果需要获取对象自身的所有属性,不管enumerable的值,可以使用Object.getOwnPropertyNames方法

Jetbrains全家桶1年46,售后保障稳定


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222919.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言左右法则

    C语言左右法则

    2021年8月13日
    38
  • 制作zencart模板的几个步骤

    制作zencart模板的几个步骤很多做外贸站的朋友都在为自己的网店模板而头疼不已,本来踌躇满志的要好好做网站,但是当你用网店程序的时候,发现zencart程序里面默认的模板都不怎么好看。于是乎,四处寻找,找了这个想要那个,结果不是不能用就是功能不全。而且最大的威胁就是不安全,万一有个什么其他的代码嵌在里面,你也发现不了。这对于做外贸的你来说是得不偿失的,那么,你是否想要自己做一个你喜欢的模板呢?是不是苦于没有方法呢?易搜今天就来…

    2022年7月27日
    1
  • 小弟博客_博客来网址

    小弟博客_博客来网址原来位于Google上的博客在国内基本不能访问了,现在找了个新家,准备发布一些我这些年来编写的东西,主要集中在算法研究和程序设计上,语言主要是.NET(C#)和Delphi,当然,其它软件开发、算法相关的许多东西也会陆续加入,例如:JavaScript、XML、Web技术等等,另外也会有极少量的与IT行业不相关的东西。旧的不去,新的不来,旧博客关了也好,新博客总算是中文的…

    2022年10月4日
    0
  • Redis能干啥?细看11种Web应用场景

    Redis能干啥?细看11种Web应用场景

    2021年10月10日
    43
  • c# MD5加密

    c# MD5加密usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Security.Cryptography;usingSystem.Text;usingSystem.Threading.Tasks;/****************************** *概要:MD5加密 *设…

    2022年7月11日
    14
  • 使用Python的statsmodels模块进行多元线性回归分析

    使用Python的statsmodels模块进行多元线性回归分析

    2020年11月8日
    322

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号