摘要:之后,所有的屬性都存在屬性描述符這個屬性。獲取屬性描述符屬性的方法是以下面的代碼為例返回該方法返回的是一個對象,該對象除了包含為的屬性外,還包含了屬性的三個特性。
今天俺跟大家一起來學習一下一個很小的知識點,那就是屬性描述符,需要注意的是該功能是在ES5之后才出現的,也就是說ES5之前偉大的JS創造者并沒有開放出該功能~大家現在知道了吧,其實我們學習的語言并不是什么天生的大神創造的,本身每一個語言都會有或多或少的問題,因此需要不斷的學習每一個語言的新特性,程序員是真的苦逼,不僅要研究業務的bug,還要不斷適應新版本解決語言本身存在的一些bug。
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為例:
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。
希望本篇文章的知識點,幫助到有需要的小伙伴~
原文鏈接:文章地址
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106450.html
摘要:屬性描述符升級打怪必備技能對象有自己的屬性和方法,對于我們對象的屬性來講,屬性還有自己的屬性,又稱為屬性描述符。這個方法接受三個參數,第一個是指定的對象,第二個是指定的對象參數,第三個當然是要修改的屬性描述符了。 對象的聲明有倆種: 字面量 通過new一個構造函數Object 兩者唯一的區別就是,字面量形式,可以一次賦值多個,通過new Object就得一個一個賦值 數據類型 ...
摘要:使用操作符,創建一個對象,并且執行構造函數方法。使用可以返回一個字典型對象對象原型每一個對象都有一個內置的屬性指向構造它的函數屬性而構造函數的則指向構造函數本生。 對象概念 在 javascript 中, 一切引用類型均為對象。 如 function Foo () {} 中,Foo本身就是一個對象的引用。 創建對象方式 字面量方式 new 構造函數 函數聲明 Object.creat...
摘要:非貪婪模式盡可能少的匹配所搜索的字符串,而默認的貪婪模式則盡可能多的匹配所搜索的字符串。 導讀 你有沒有在搜索文本的時候絞盡腦汁, 試了一個又一個表達式, 還是不行. 你有沒有在表單驗證的時候, 只是做做樣子(只要不為空就好), 然后燒香拜佛, 虔誠祈禱, 千萬不要出錯. 你有沒有在使用sed 和 grep 命令的時候, 感覺莫名其妙, 明明應該支持的元字符, 卻就是匹配不到. 甚至,...
摘要:創建對象創建一個普通對象創建一個沒有原型的新對象不繼承任何屬性和方法返回對象中可枚舉的自我屬性的名稱的數組返回對象中所有自我屬性的名稱的數組屬性的特性屬性有兩種特性數據屬性和存取器屬性數據屬性存取器屬性可以獲得某個對象特定自有屬性的屬性描述 Object.create(o) 創建對象 Object.create({x: 1}) //創建一個普通對象 Object.create(null...
閱讀 2189·2021-11-15 11:38
閱讀 1151·2021-09-06 15:02
閱讀 3380·2021-08-27 13:12
閱讀 1353·2019-08-30 14:20
閱讀 2389·2019-08-29 15:08
閱讀 636·2019-08-29 14:08
閱讀 1723·2019-08-29 13:43
閱讀 1464·2019-08-26 12:11