如何显示对象的所有方法
问题:
确定一个方法列出给定对象的所有可用方法,类似于:
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中文网其他相关文章!