摘要:語句可以用來遍歷一個對象中的所有屬性名,該枚舉過程會列出所有的屬性包括函數和你可能并不關系的原型中的屬性,所以有必要了來過濾掉不想要的值。方法不會檢查原型鏈接著來看枚舉。
for in 語句可以用來遍歷一個對象中的所有屬性名,該枚舉過程會列出所有的屬性(包括函數和你可能并不關系的原型中的屬性),所以有必要了來過濾掉不想要的值。常用的過濾器是 hasOwnProperty 方法,以及使用 typeof 來排除函數。
typeof 操作符可以用于確定屬性的類型。但對原型鏈中的屬性也會產生值:
typeof flight.toString; // "function" typeof flight.constructor; // "function"
這兒時候可以使用 hasOwnProperty 方法,如果對象擁有獨有的屬性,將會返回 true。hasOwnProperty 方法不會檢查原型鏈:
flight.hasOwnProperty("number"); // true flight.hasOwnProperty("constructor"); // false
接著來看枚舉。
在 for in 中屬性名出現的順序是不確定的,所以如果想要確保屬性以特定的順序出現,最好的辦法就是完全避免使用 for in 語句,而是使用 for 。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80291.html
摘要:原型對象與方法枚舉的問題原型屬性的屬性與的枚舉問題有的時候設置成時仍然會被方法枚舉到。新建立的原型對象的屬性,也是按照規則返回結果。最后,再重申一遍,如果原型對象合實例存在同名屬性,無論如何都會被枚舉。 js 原型對象與for-in 方法枚舉的問題 原型屬性的[[enumerable]]屬性與for-in 的枚舉問題 有的時候[[enumerable]]設置成false 時仍然會被fo...
摘要:等內置的方法和屬性都是不可枚舉的北京北京可以遍歷可枚舉但對象,包括不是它本身但存在于原型鏈上的屬性。北京循環可迭代對象循環可迭代對象包括,,,,,類數組的對象比如對象對象以及生成器對象等。 在JavaScript中,我們經常需要去循環迭代方法操作數組對象等,常見等循環方法有 for、for in、for of、forEach等。 1.for循環 for循環是最基礎常見的一種循環,圓括號...
摘要:像和使用內置構造函數所創建的對象都會繼承自和的不可枚舉屬性,例如的方法或的方法。循環將遍歷對象本身的所有可枚舉屬性,以及對象從其構造函數原型中繼承的屬性更接近原型鏈中對象的屬性覆蓋原型屬性。在中,非對象參數被強制轉換為對象。 for...in for...in 循環只遍歷可枚舉屬性。像 Array和 Object使用內置構造函數所創建的對象都會繼承自Object.prototype和S...
摘要:用循環和方法都可以獲取對象的屬性,那么它們有什么區別呢假設有一個對象定義不可枚舉屬性程序的輸出結果為兩種方式都獲取到了對象的所有可枚舉屬性,而對于不可枚舉屬性兩種方式都無法得到。 用for...in循環和Object.keys方法都可以獲取對象的屬性,那么它們有什么區別呢?假設有一個對象a: var a = {x: 1, y: 2}; Object.defineProperty(a, ...
摘要:簡單說就是一個有一個函數,這個函數執行的返回值一定是一個對象,對象有兩個屬性標記迭代是否結束,標記這次迭代的結果值。 引言 遍歷對象是平常工作中很常見的一個操作,幾乎是日常操作,但是遍歷對象真的是一件很容易的事情么,顯然不是的。 常用的方式 for...in for (variable in object) {...} 這個是一個很常見的用法,相信每個人順手都可以寫出來。但是這里需要主...
摘要:附如果你想獲取一個對象的所有屬性甚至包括不可枚舉的即可見下面一種方法方法返回一個由指定對象的所有自身屬性的屬性名包括不可枚舉屬性但不包括值作為名稱的屬性組成的數組。 JavaScript中遍歷獲取對象屬性和方法主要有三種: Object.keys()、Object.getOwnPropertyNames()、for...in... 一、Object.keys()、Object.get...
閱讀 787·2021-11-11 16:54
閱讀 1517·2021-08-24 10:01
閱讀 1911·2019-08-30 15:54
閱讀 3296·2019-08-29 14:02
閱讀 3130·2019-08-28 18:22
閱讀 2245·2019-08-28 18:09
閱讀 3698·2019-08-26 10:26
閱讀 2665·2019-08-23 18:23