摘要:引言說(shuō)到枚舉,可能很多人都會(huì)想到枚舉類(lèi)型,但在對(duì)象中有一個(gè)屬性為可枚舉性,他是什么呢概念可枚舉性用來(lái)控制所描述的屬性,是否將被包括在循環(huán)之中。至于循環(huán)和方法的區(qū)別,在于前者包括對(duì)象繼承自原型對(duì)象的屬性,而后者只包括對(duì)象本身的屬性。
引言
說(shuō)到枚舉,可能很多人都會(huì)想到枚舉類(lèi)型,但在javascript對(duì)象中有一個(gè)屬性為可枚舉性,他是什么呢?
概念可枚舉性(enumerable)用來(lái)控制所描述的屬性,是否將被包括在for...in循環(huán)之中。具體來(lái)說(shuō),如果一個(gè)屬性的enumerable為false,下面三個(gè)操作不會(huì)取到該屬性。
* for..in循環(huán)
* Object.keys方法
* JSON.stringify方法
javascriptvar o = {a:1, b:2}; o.c = 3; Object.defineProperty(o, "d", { value: 4, enumerable: false }); o.d // 4 for( var key in o ) console.log( o[key] ); // 1 // 2 // 3 Object.keys(o) // ["a", "b", "c"] JSON.stringify(o // => "{a:1,b:2,c:3}"
上面代碼中,d屬性的enumerable為false,所以一般的遍歷操作都無(wú)法獲取該屬性,使得它有點(diǎn)像“秘密”屬性,但還是可以直接獲取它的值。
至于for...in循環(huán)和Object.keys方法的區(qū)別,在于前者包括對(duì)象繼承自原型對(duì)象的屬性,而后者只包括對(duì)象本身的屬性。如果需要獲取對(duì)象自身的所有屬性,不管enumerable的值,可以使用Object.getOwnPropertyNames方法
來(lái)自 搞起博客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91508.html
摘要:嘗試刪除一個(gè)密封對(duì)象的屬性或者將某個(gè)密封對(duì)象的屬性從數(shù)據(jù)屬性轉(zhuǎn)換成訪(fǎng)問(wèn)器屬性,結(jié)果會(huì)靜默失敗或拋出異常嚴(yán)格模式。 擴(kuò)展特性 Object.isExtensible 方法 Object.preventExtensions 方法 密封特性 Object.isSealed 方法 Object.seal 方法 凍結(jié)特性 Object.isFrozen 方法 Object...
摘要:王國(guó)維在人間詞話(huà)里談到了治學(xué)經(jīng)驗(yàn),他說(shuō)古今之成大事業(yè)大學(xué)問(wèn)者,必經(jīng)過(guò)三種之境界。其中談到中凍結(jié)一個(gè)對(duì)象幾種由淺入深的實(shí)踐。王國(guó)維已先自表明,吾人可以無(wú)勞糾葛。總結(jié)本文先后介紹了關(guān)于凍結(jié)一個(gè)對(duì)象的三種進(jìn)階方法。 王國(guó)維在《人間詞話(huà)》里談到了治學(xué)經(jīng)驗(yàn),他說(shuō):古今之成大事業(yè)、大學(xué)問(wèn)者,必經(jīng)過(guò)三種之境界。 巧合的是,最近受 git chat / git book 邀請(qǐng),做了一個(gè)分享。其中談到J...
摘要:王國(guó)維在人間詞話(huà)里談到了治學(xué)經(jīng)驗(yàn),他說(shuō)古今之成大事業(yè)大學(xué)問(wèn)者,必經(jīng)過(guò)三種之境界。其中談到中凍結(jié)一個(gè)對(duì)象幾種由淺入深的實(shí)踐。王國(guó)維已先自表明,吾人可以無(wú)勞糾葛??偨Y(jié)本文先后介紹了關(guān)于凍結(jié)一個(gè)對(duì)象的三種進(jìn)階方法。 王國(guó)維在《人間詞話(huà)》里談到了治學(xué)經(jīng)驗(yàn),他說(shuō):古今之成大事業(yè)、大學(xué)問(wèn)者,必經(jīng)過(guò)三種之境界。 巧合的是,最近受 git chat / git book 邀請(qǐng),做了一個(gè)分享。其中談到J...
摘要:木易楊注意原始類(lèi)型被包裝為對(duì)象木易楊原始類(lèi)型會(huì)被包裝,和會(huì)被忽略。木易楊原因在于時(shí),其屬性描述符為不可寫(xiě),即。木易楊解決方法也很簡(jiǎn)單,使用我們?cè)谶M(jìn)階期中介紹的就可以了,使用如下。 引言 上篇文章介紹了賦值、淺拷貝和深拷貝,其中介紹了很多賦值和淺拷貝的相關(guān)知識(shí)以及兩者區(qū)別,限于篇幅只介紹了一種常用深拷貝方案。 本篇文章會(huì)先介紹淺拷貝 Object.assign 的實(shí)現(xiàn)原理,然后帶你手動(dòng)實(shí)...
閱讀 1550·2023-04-26 02:08
閱讀 3139·2021-10-14 09:42
閱讀 7230·2021-09-22 15:34
閱讀 3250·2019-08-30 13:16
閱讀 2752·2019-08-26 13:49
閱讀 1356·2019-08-26 11:59
閱讀 1287·2019-08-26 10:31
閱讀 2178·2019-08-23 17:19