enumerable 可列舉 屬性

2022-06-22 00:54:10 字數 880 閱讀 3731

乙個物件的可列舉屬性會在for...in中被訪問到 (或是類似的迭代方法, object.keys()

如果乙個屬性不是可列舉的,迴圈會忽略這個屬性

varobj =;console.log('tostring'in obj);// trueconsole.log(typeofobj.tostring);// "function"for(varkey in obj)console.log(key);// "key"

可列舉屬性很重要,因為物件有很多屬性,尤其是繼承來的:

console.log(object.getownpropertynames(object.prototype));// ["constructor", "tostring", "tolocalestring", "valueof", "hasownproperty", "isprototypeof", "propertyisenumerable", /* etc. */]

這些屬性都存在於object上:

console.log('constructor'in foo);// trueconsole.log('tostring'in foo);// true// etc.

但是他們會在for...in中被跳過 因為他們不是可列舉的

vardescriptor =object.getownpropertydescriptor(object.prototype,'constructor');console.log(descriptor.enumerable);// false

C 列舉型別Enumerable及其擴充套件

重要的資料型別 列舉型別是程式設計裡重要的一種資料型別,了解其本質和擴充套件型別的使用方法,將有助於解決程式設計中遇到的資料處理問題。ienumerable介面 實現了ienumerable介面的集合表明該集合能夠提供乙個enumerator 列舉器 物件,支援當前的遍歷集合。ienumerable...

前端複習 物件的可列舉屬性

初學時,並不是很注意這些細節的東西,但是程式設計師寫 的時候,怎麼會容忍胡而麻三的記憶.1 for in 語句的複習 問題引出 var function colored colored prototype var obj new colored for var prop in obj output ...

屬性的可列舉性和遍歷

屬性的可列舉性和遍歷 可列舉性 物件的每乙個屬性都有乙個描述物件 descriptor 用來控制該屬性的行為。object.getownpropertydescriptor方法可以獲取該屬性的描述物件。let obj object.getownpropertydescriptor obj,foo 描...