javascript - 以字符串格式执行函数

标签 javascript node.js

我在 os 模块中有一个数组函数,我如何循环并执行每个函数。

var os = require("os");

var os_func_list = Object.keys(os);

os_func_list.forEach(function(element) {

    // I know this is not working
    // var func = "os." + element + "()";
    // console.log(func);
}, this);

答案:

os_func_list.forEach(function(element) {
    var func = os[element];
    if (typeof func === 'function') { //verify that value is a function
        console.log(func());
    }
}, this);

最佳答案

您可以使用[]表示法动态访问对象的属性/函数:

var os = require("os");

var os_func_list = Object.keys(os);

os_func_list.forEach(function(element) {
  var osValue = os[element];
  if (typeof osValue === 'function') { //verify that value is a function
    osValue();
  }
});

如果您需要在调用期间使用特定的 this 值(因为我注意到您小心地将 this 作为第二个参数传递给 forEach),您可以使用call。只需更改:

osValue();

osValue.call(appropriateValueForThisGoesHere);

关于javascript - 以字符串格式执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42492810/

相关文章:

javascript - Ease Out Cubic - 函数参数说明

javascript - 用async等待正确地附加到文件的好模式是什么?

javascript - 使用 Ajax 调用将数组传递到 Javascript 代码中

node.js - 从函数中,如何获取实际调用该函数的模块的详细信息?

python - 用于手机的远程蓝牙摄像头触发器

javascript - 无法在组件内获取子项的 $ref。出现未定义的错误

javascript - 制作一个 JavaScript 字符选择器

ios - 使用NodeJS服务器进行移动身份验证的设计

javascript - 多个查询的 Node MySql 回调

javascript - Node 或 v8 中内置 JavaScript 类型的引用