Javascript基础:js中属性描述符详解

今天俺跟你们一块儿来学习一下一个很小的知识点,那就是属性描述符,须要注意的是该功能是在ES5以后才出现的,也就是说ES5以前伟大的JS创造者并无开放出该功能~你们如今知道了吧,其实咱们学习的语言并非什么天生的大神创造的,自己每个语言都会有或多或少的问题,所以须要不断的学习每个语言的新特性,程序员是真的苦逼,不只要研究业务的bug,还要不断适应新版本解决语言自己存在的一些bug。html

ES5以后,全部的属性都存在属性描述符这个属性。获取属性描述符属性的方法是:程序员

Object.getOwnPropertyDescriptor

如下面的代码为例:数组

var object = {
    a: 2
}

Object.getOwnPropertyDescriptor(object,"a");//返回 {value: 2, writable: true, enumerable: true, configurable: true}
该方法返回的是一个对象,该对象除了包含value为2的属性外,还包含了属性的三个特性。学习

writable (是否可修改属性的值)
enumerable (是否出如今对象的属性枚举中)
configurable (是否可配置,属性设置为false以后,该属性值为不可逆的,也就是说不能再修改成true了)
咱们举一个设置数组的enumerable为例:.net

var arr = [1,2,3]
Object.getOwnPropertyDescriptor(arr,'0',{enumerable:false});
for(var a in arr){
  console.log(arr[a]) //输出2,3
}
arr.forEach(function(item,index){
  console.log(item) //输出1,2,3
})

由于for in 遍历的是可枚举属性,所以没有输出1。code

但愿本篇文章的知识点,帮助到有须要的小伙伴~
原文连接:文章地址htm

相关文章
相关标签/搜索