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

相關文章
相關標籤/搜索