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"
方法2
如果你想把键作为一个方法,你可以使用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]),我们可以在对象中访问键的值,在这种情况下,它是一个函数。通过在行末添加括号(),我们正在调用该函数,它将执行其中的代码并将 “这是方法1 “记录到控制台。
我们也可以用一个包含键名的变量来代替键的变量,它的工作方式是一样的 −
let method = "method1";
obj[method]();
当键名在运行时才知道,而我们想访问对象中的值,在这里是一个函数,并执行它时,这是一个有用的模式。