【问题标题】:Import functions implicitly in javascript在 javascript 中隐式导入函数
【发布时间】:2020-02-06 02:51:29
【问题描述】:

我有 2 个文件。

//callee.js
const first = (name) => {
    return name;
}

const second = (name) => {
    return name + " is this";
}

module.exports = [
    first,
    second
]
//caller.js
const nav = require("./callee.js");

console.log(nav.first("bob")); //returns bob 
...(Object.values(nav)); //want something like this

first("bob"); // this should return bob

如何在caller.js中调用或解构导入变量"nav"得到上述结果?

【问题讨论】:

    标签: javascript node.js reactjs


    【解决方案1】:

    这是你想要的吗?

    const [first, second] = require("./callee.js");
    
    first("bob");
    

    【讨论】:

    • 不,我不想像你上面提到的那样解构赋值。我想要的是将 callee.js 文件的导出函数隐式存在于 caller.js 文件中。
    【解决方案2】:

    如果您不想像 Hao Wu 的出色回答那样明确键入变量名称,您可以这样做:

    Object.assign(window, require('./callee.js'));
    first('bob');
    

    (在 Node.js 中将 window 替换为 global。)

    重要提示:这太可怕了。我把它写成对这个问题的字面回答,只是为了表明它是可能的。请不要真的这样做。要么保留命名空间(nav.first),要么提取特定功能(如郝武所示)。

    【讨论】:

    • 不,我不想像吴昊说的那样解构赋值。我想要的是将 callee.js 文件的导出函数隐式存在于 caller.js 文件中。想象一下,最初在 caller.js 文件中存在第一个和第二个函数。所以要调用函数。我先写(“名称”)。现在,如果我将函数移出 caller.js 文件,但仍想像之前一样调用它。
    猜你喜欢
    • 2019-03-06
    • 2023-03-25
    • 2011-08-19
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多