如何在 JavaScript 中调用对象的键,但将其作为方法而不是字符串返回?


我们可以使用 "Object.keys()" 方法来检索对象的键。但是,与其将键作为字符串返回,我们可以将对 "Object.keys()" 的调用包装在一个函数中。这样,当我们调用该函数时,它将返回键作为方法,而不是字符串。

方法一

您可以使用 Object.keys() 方法获取对象键的数组,然后使用数组表示法或 [] 运算符访问对象的键作为属性。

这是一个示例:

let obj = { key1: "value1", key2: "value2" };
let keys = Object.keys(obj);
let firstKey = keys[0];
console.log(obj[firstKey]); // "value1"

方法二

如果您想将键用作方法,可以使用 obj[firstKey]() 表示法来调用该方法,如下所示:

let obj = { key1: () => {console.log("key1 method")} };
let keys = Object.keys(obj);
let firstKey = keys[0];
obj[firstKey](); // "key1 method"

工作代码片段

这是一个关于如何将对象的键作为方法而不是字符串调用的完整工作代码片段:

const obj = {
   method1: () => { console.log("This is method 1.") },
   method2: () => { console.log("This is method 2.") }
}
const key = "method1";
obj[key](); // Output: "This is method 1."

在这个例子中,我们首先创建一个名为 obj 的对象,它有两个键 method1 和 method2,它们都被设置为将消息记录到控制台的箭头函数。接下来,我们创建一个名为 key 的变量,并将其设置为字符串“method1”。

通过使用方括号表示法 (obj[key]),我们可以访问对象中键的值,在本例中是一个函数。通过在行尾添加括号 (),我们正在调用该函数,这将执行其中的代码并将“This is method 1.” 记录到控制台。

我们也可以用包含键名的变量替换 key 变量,它将以相同的方式工作:

let method = "method1";
obj[method]();

当键名直到运行时才知道,而我们又想访问对象中的值(在本例中是函数)并执行它时,这是一个有用的模式。

更新于:2023年2月16日

651 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告