2014-09-04 205 views
-1

我想知道在子函數中調用返回父函數。如何從node.js中的調用函數訪問調用函數?

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

你不是指'父母'和'孩子'功能,你的意思是'調用'和'調用'功能。不,你看不到被調用函數的調用函數。如果你想這樣做,這意味着你的邏輯有問題。 「呼叫返回父功能」是什麼意思? – 2014-09-04 16:58:47

回答

1

要前言,你真的不應該這樣做。你的問題幾乎肯定意味着你正在設計錯誤的東西,而這樣做會在第8版中禁用大量的優化。

但你可以做到。

從一個函數中,魔術變量arguments可用。這是一個包含該函數所有參數的數組。此外,它有一些有趣的屬性 - 其中之一是callee。這是對當前功能的引用。它也有一些有趣的屬性。一個是arguments,它回到原來的arguments對象。我們正在尋找的是caller

所以,從函數內部,arguments.callee.caller是對調用函數的引用。

再次,請不要這樣做。你應該在更多的背景下提出另一個問題,以便有人可以幫助你解決真正的問題。

+1

(在嚴格模式下不允許'callee'的注意事項。) – 2014-09-04 17:23:55

+0

謝謝。我會重新設計邏輯取決於你的建議。 – user3867387 2014-09-05 00:59:17