JavaScript对象的可枚举属性学习

可枚举属性和不可枚举属性是什么

所谓的可枚举就是可遍历的意思,也就是说对象的属性是否能够通过遍历得到。即通过for...in循环遍历到。

怎么判断属性是否可枚举

对象的属性是否具有可枚举属性是由enumerable值决定;
可以通过obj.propertyIsEnumerable(prop);来判断obj对象的prop属性是否能够枚举,该方法返回的是一个布尔值

哪些对象的属性是不可枚举的

js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number

JavaScript对象的可枚举属性学习_第1张图片
属性的可枚举性和所有权 - 内置的判断,访问和迭代方法

属性是否可枚举有什么用

引入可枚举性这个概念的最初目的是为了让某些属性可以规避掉for...in操作,不然内部属性和方法都会遍历到

那些方法可遍历到可枚举属性

  • for...in;遍历自身和继承的可枚举属性;
  • Object.keys(obj);返回一个包括对象自身可枚举属性的健名的数组
参考:
  • 阮一峰:ECMAScript 6 入门 中对象的扩展一章
  • MDN:属性的可枚举性和所有权

你可能感兴趣的:(JavaScript对象的可枚举属性学习)