我有一个名为something.js的文件,其代码如下:
exports.run = (args) => {
function foo() {
console.log("foo");
}
}
现在我想从另一个文件中调用foo
。
我的代码看起来像这样,错误附加为注释:
const something = require("./something.js");
module.exports = {
callFoo: function() {
something.foo(); //TypeError: something.foo is not a function
something.run.foo(); //TypeError: something.run.foo is not a function
}
是否可以调用这样一个显然不是函数的函数?
答案 0 :(得分:0)
您将箭头函数指定给exports.run
,并在该函数中定义foo
函数,但无法从箭头函数外部访问此函数。你的代码几乎等同于:
exports.run = function(args) {
function foo() {
console.log("foo");
}
}
你很可能想写:
exports.run = {
foo() {
console.log("foo");
}
}
或者
exports.run = {
foo : function() {
console.log("foo");
}
}