シナリオ:異なるタスクを実行し、さまざまな開発者が処理する複数のメソッドがあると考えてください。エラーが発生した場合にログを記録するジェネリックメソッド呼び出しを作成しようとしています。メソッド内でメソッド名を取得する方法
function enterLog(sourcefile, methodName, LineNo)
{
fs.appendFile('errlog.txt', sourcefile +'\t'+ methodName +'\t'+ LineNo +'\n', function(e){
if(e)
console.log('Error Logger Failed in Appending File! ' + e);
});
}
ので、上記のメソッドの呼び出しがソースを渡すことがありますので、必要性は次のように私は、一般的な機能を書いた
..私はラインNo、メソッド名などをログに記録する必要がありますファイル、メソッド名、行番号は、開発中の任意の時点で変更される可能性があります。
など。
enterLog('hardcodedFileName.js', 'TestMethod()', '27');
質問:ハードコーディングされた値を使用してメソッドを呼び出すために必要な(例えば、上記のような)の値をハードコードに、それより良いですかメソッド名に&ラインなしの参照からを取得する方法がありますNode.jsにはどんな方法がありますか?あなたは
https://developer.mozilla.org/de/docs/JavaScript/Reference/Global_Objects/Function/caller
で見ても
チェック議論:ハードコーディングではない、あなたのファイル名は、サードパーティ・モジュールの依存関係なしでのNode.jsで達成するのが最も簡単ですhttp://stackoverflow.com/questions/16324409/is-it-possible -for-a-javascript-function-to-return-its-own-function-call-as-a-st – NilsH