在exports.run()中调用一个函数

时间:2018-05-25 13:47:57

标签: javascript node.js

我有一个名为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
}

是否可以调用这样一个显然不是函数的函数?

1 个答案:

答案 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");
   }
}