为了账号安全,请及时绑定邮箱和手机立即绑定

根据规定,所有开发人员定义的属性都是可枚举的该如何理解?

根据规定,所有开发人员定义的属性都是可枚举的该如何理解?

四季花海 2019-02-13 17:15:18
高程书p153页有这样一段话在使用for-in循环时,返回的是所有能够通过对象访问的、可枚举的属性,既包括实例中的属性又包括原型对象中的属性;屏蔽了原型中不可枚举属性(即将[[Enumerable]]设置为false的属性)也会在for-in循环中返回,因为根据规定,所有开发人员定义的属性都是可枚举的---只有IE8即更早版本中例外问题一:根据规定,所有开发人员定义的属性都是可枚举的该如何理解?我在百度中搜索for…in是否可以返回不可枚举的属性时 看到的大部分关键句子如下for in循环可以遍历对象中所有可以枚举的属性,包括自有属性和继承属性。问题二:那么这里的可枚举是不是指所有用户自定义属性而不是说enumerable特性设置为true的属性?是不是就算用户将enumerable特性设置为false仍然是可枚举属性?
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

问题1:只是说明用户自定义的属性默认都是可枚举的 也就是说你不做任何特性设置时 你可以吧它循环出来
问题2:系统默认可枚举你改成了不可枚举当然就不可枚举了

因为你写了个属性还得手动设置可枚举会很奇怪 所以规定开发任用定义的默认可枚举
而你自己定义的属性你都设置了不可枚举了 还可枚举那也很奇怪
只是一个默认值问题


查看完整回答
反对 回复 2019-02-22
  • 1 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信