擷取不可枚舉的繼承屬性
判斷不可枚舉的繼承屬性是否存在在 JavaScript 中至關重要。雖然像 Object.keys() 和 Object.getOwnPropertyNames() 這樣的方法提供了物件屬性的訪問,但它們排除了繼承的不可枚舉屬性。
為了彌補這個差距,我們可以利用 Object.getOwnPropertyNames() 方法結合原型鏈遍歷。這種方法允許我們識別繼承層次結構的任何層級的不可枚舉屬性。
這是一個示範此技術的函數:
function getAllProperties(obj) { var allProps = [] , curr = obj; do { var props = Object.getOwnPropertyNames(curr); props.forEach(function(prop) { if (allProps.indexOf(prop) === -1) allProps.push(prop); }); } while (curr = Object.getPrototypeOf(curr)); return allProps; } console.log(getAllProperties([1,2,3]));
透過將Object.getOwnPropertyNames() 與原型結合起來鏈遍歷,我們現在可以檢索物件的可枚舉和不可枚舉屬性的完整列表,包括從其父級繼承的屬性原型。這種方法提供了所有財產的全面視圖,無論其可見性或所有權狀態如何。
以上是如何在 JavaScript 中檢索不可列舉的繼承屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!