我在文件中声明一个像这样的函数:
File1:
module.exports = {
function1: function(callback){
//do some work
},
}
在另一个文件中,如果我导入 File1 并调用 file1.function1,该函数将运行并得到结果。
尽管如此,如果我在 File1 中并声明另一个函数:
module.exports = {
function1: function(callback){
//do some work
},
function2: function(callback){
var result = function1...
}
}
在这种情况下,我得到 function1 is not Defined。
为什么会发生这种情况?难道不应该以某种方式独立于调用的位置进行调用吗?
最佳答案
function1
不是变量。
它是您分配给 module.exports
的对象的属性。
与此比较:
var foo = {
bar: 1
}
console.log(bar);
bar
是 foo
的一个属性,本身并不是一个变量。
你必须这样对待它。
var foo = {
bar: 1
}
console.log(foo.bar);
function1
也是如此。
您需要将其作为对象属性访问:
var result = module.exports.function1();
关于javascript - Node.js 函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47097970/