JavaScript 如何获取对象的所有方法
在本文中,我们将学习如何使用JavaScript获取对象的所有方法。在JavaScript中,我们可以遍历每个对象,并检查其属性值是否为函数来获取对象的所有方法。 HTML文档中包含一些方法,任务是获取对象的所有方法。
解决这个问题有两种方法,下面将进行讨论:
- 使用typeof运算符和filter()方法
- 使用typeof运算符和for-in循环
方法1:使用typeof运算符和filter()方法
- 创建一个以对象为输入的函数。
- 使用 typeof运算符 ,检查对象的类型是否为函数。
- 如果对象的类型为函数,则返回该对象。
示例: 以下示例实现了上述方法。
function Obj() {
this.m1 = function M1() {
return "From M1";
}
this.m2 = function M2() {
return "From M2";
}
}
function getAllMethods(obj = this) {
return Object.keys(obj)
.filter((key) => typeof obj[key] === 'function')
.map((key) => obj[key]);
}
function gfg_Run() {
console.log(getAllMethods(new Obj()));
}
gfg_Run();
输出
[ [Function: M1], [Function: M2] ]
方法2
- 创建一个以对象为输入的函数。
- 使用 typeof运算符 ,检查对象的类型是否为函数。此示例还检查是否发生任何错误,如果发生错误则进行适当处理。
- 如果对象的类型是函数,则返回它。
示例2: 此示例实现了上述方法。
function Obj() {
this.m1 = function M1() {
return "From M1";
}
this.m2 = function M2() {
return "From M2";
}
}
function getAllMethods(obj) {
let result = [];
for (let id in obj) {
try {
if (typeof (obj[id]) == "function") {
result.push(id + ": " + obj[id].toString());
}
} catch (err) {
result.push(id + ": Not accessible");
}
}
return result;
}
function gfg_Run() {
console.log(getAllMethods(new Obj()).join("\n"));
}
gfg_Run();
输出
m1: function M1() {
return "From M1";
}
m2: function M2() {
return "From M2";
}