如何顯示物件的所有方法
問題:
確定一個方法列出給定物件的所有可用方法,類似:
alert(show_all_methods(Math));
預期輸出:
abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random,round, sin, sqrt, tan, …
解:
枚舉所有屬於物件的屬性(包括方法)使用Object.getOwnPropertyNames() 方法。此方法提供了一組屬性名稱:
console.log(Object.getOwnPropertyNames(Math)); //-> ["E", "LN10", "LN2", "LOG2E", "LOG10E", "PI", ...etc ]
隨後,使用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 及更早版本,內建物件屬性是不可列舉的。但是,此排除不適用於視窗和文件等對象,這些對象通常由瀏覽器定義並且可能是可枚舉的。
以上是如何列出物件的所有方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!