我想将函数A调用为函数B。
我已经尝试从函数B调用函数A
module.exports = function(req, res) {
return {
function_a: function() {
// do something here
},
function_b: function() {
// call function_a
const A = function_a(); // I want to be called something like this
// do something here
}
}
}
我希望函数A在函数B中被调用
答案 0 :(得分:3)
假定通过以下方式调用function_b
:
your_module().function_b();
然后,您可以使用this
中的function_b
访问该对象。
this.function_a();
如果该方法与对象分离,则将失去该连接,因此可能值得重写该模块,因此您获得的引用不依赖于this
的值。例如:
module.exports = function(req, res) {
const my_return_value = {
function_a: function() {
// do something here
},
function_b: function() {
const A = my_return_value.function_a();
}
};
return my_return_value;
}
答案 1 :(得分:1)
要引用对象内的另一个函数,可以使用this
关键字。
此代码段可能对您有所帮助。
function name (firstName, lastName) {
return {
function_a: function() {
return firstName
},
function_b: function() {
const A = this.function_a();
return A + lastName
}
}
}
const initName = name('rohit', 'bhatia')
console.log(initName.function_b())
此外,昆汀答案可能更有用/有用
答案 2 :(得分:0)
您当前拥有的代码无效的JavaScript。您正在尝试将函数作为函数内部的对象(??)处理。
您可以执行以下操作:首先在module.exports
之外创建函数
function funcA(){
console.log('Inside function A!');
}
function funcB(){
funcA();
console.log('inside function B!');
}
这将像任何两个函数一样。呼叫funcA()
将记录'Inside function A!'
,呼叫funcB()
将记录'Inside function A!' 'inside function B!'
。
然后您可以将其导出以在其他地方使用:
exports = {
funcA: funcA,
funcB: funcB
}
在这里,我们使用的是exports
而不是module.exports
。可以使用ES6 {funcA, funcB}
简化以上操作,因为键和值具有相同的名称。
答案 3 :(得分:0)
尝试一下。您也可以访问此链接以查看处理问题的不同样式。 https://gist.github.com/kimmobrunfeldt/10848413
function a() {
}
function b() {
a()
}
module.exports = {
a: a,
b: b
}
答案 4 :(得分:0)
您的代码在javascript中无效
应该是
module.exports = function(req, res) {
const function_a = function() {
// do something here
}
const function_b = function() {
// call function_a
function_a()
// do something here
}
}
或者您可能是说导出对象而不是函数
module.exports = {
function_a:function() {
// do something here
},
function_b:function() {
// call function_a
this.function_a()
// do something here
}
}
答案 5 :(得分:-2)
这看起来很令人困惑,但我认为您想要这样的东西:
module.exports = function(req, res) {
functionA() {};
functionB(){
functionA();
}
}
如果这不是您要找的答案,请告诉我们您要从模块中导出什么。