如何从node.js中的被调用函数访问调用函数?

时间:2014-09-04 16:52:22

标签: node.js express

我想知道在子函数中调用返回父函数。

app.get('/path', function(req, res, next) {
        var result = child('test_Val', next);

        return res.send(200);
    }); 

function child(arg1, next) {
   if (condition) {
      //I want to call return parent function with next() here.
   }
}

有可能吗?

1 个答案:

答案 0 :(得分:1)

作为序言,你真的不应该这样做。你的问题几乎肯定意味着你设计了错误的东西,这样做会在v8中禁用大量的优化。

但你可以做到。

在函数内部,可以使用魔术变量arguments。这是一个类似于数组,包含该函数的所有参数。此外,它还有一些有趣的属性 - 其中一个是callee。这是对您当前所处功能的引用。它还有一些有趣的属性。一个是arguments,它指向原始的arguments对象。我们正在寻找的是caller

因此,从函数内部,arguments.callee.caller是对调用函数的引用。

再次,请不要这样做。你应该提出更多背景的另一个问题,以便有人可以帮助你解决这里的真正问题。