首頁 >web前端 >js教程 >如何在 JavaScript 中列出物件的所有方法?

如何在 JavaScript 中列出物件的所有方法?

Patricia Arquette
Patricia Arquette原創
2024-10-19 16:17:02673瀏覽

How to List All Methods of an Object in JavaScript?

列出物件的所有方法

在 JavaScript 中,您可以使用 Object.getOwnPropertyNames() 方法枚舉物件的方法。但是,您可能還想過濾掉非方法屬性,以確保您只獲得所需的功能。

Object.getOwnPropertyNames()

Object.getOwnPropertyNames( )傳回屬於給定物件的所有屬性(可枚舉和不可枚舉)的陣列。例如:

console.log(Object.getOwnPropertyNames(Math));
//-> ["E", "LN10", "LN2", "LOG2E", "LOG10E", "PI", ...etc ]

過濾方法

要只取得方法,可以將Object.getOwnPropertyNames() 與filter() 方法結合使用:

console.log(Object.getOwnPropertyNames(Math).filter(function (p) {
    return typeof Math[p] === 'function';
}));
//-> ["random", "abs", "acos", "asin", "atan", "ceil", "cos", "exp", ...etc ]

ES3 瀏覽器相容性

在ES3 瀏覽器(如IE 8 及以下版本)中,內建物件屬性是不可枚舉的,除了瀏覽器本身定義的屬性(例如,視窗、文件)。因此,使用上述方法不會捕捉這些環境中的所有方法。

IE Bug with { DontEnum }

在Internet Explorer 中,有一個Bug 導致它如果原型鏈中存在具有相同名稱的屬性,並且該屬性也具有{DontEnum},則跳過物件中具有{DontEnum} 屬性的屬性。這意味著在使用 IE 時仔細命名物件屬性至關重要,以避免潛在問題。

以上是如何在 JavaScript 中列出物件的所有方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn