一般的想法是我需要一个module.export函数内的函数。我们说我有两个文件:foo.js
和math.js
。它们位于同一文件夹中。
// foo.js
var calc = require('./math.js');
var a = 3, b = 5;
console.log(calc.calc(a, b));
它会请求导出模块将两个数字加在一起。
// math.js
module.exports = {
calc: function(a, b) {
// I need to call another function which does the math right here.
}
}
如果我像下面尝试的那样嵌套它们,它只会返回undefined
。
// math.js
module.exports = {
calc: function(a, b) {
x(a, b);
function x(a, b) {
return a + b;
}
}
}
返回undefined
。
// math.js
module.exports = {
calc: function(a, b) {
x(a, b);
}
}
function x(a, b) {
return a + b;
}
返回b is not a function
。
如何在导出模块中嵌套函数?我是Node的新手,所以这听起来像是一个基本的问题,但我真的无法让它发挥作用。
编辑:这非常简化。我知道我可以在第一个计算函数中进行数学计算,但在我的实际代码中这是不可能的。答案 0 :(得分:1)
return语句结束函数执行并指定要返回给函数调用者的值
嵌套函数中的
module.exports = {
calc: function(a, b) {
return x(a, b); //Function should Return a Value
function x(a, b) {
return a + b;
}
}
}
私人范围方法
module.exports = {
calc: function(a, b) {
return x(a, b);
}
}
function x(a, b) {
return a + b;
}
输出
- > foo.js
var calc = require('./math.js');
console.log(calc.calc(1,2)); ----> 3