मैं का उपयोग करना चाहते एक आसान तरीका arguments.callee.caller.name
है:
function testOne() {
console.log("Test 1");
logTest();
}
function testTwo() {
console.log("Test 2");
logTest();
}
function logTest() {
console.log("Being called from " + arguments.callee.caller.toString());
}
testOne();
testTwo();
आप अपने JavaScript फ़ाइल में 'use strict';
का उपयोग करते हैं, तो आप टिप्पणी करने के लिए/इसे हटाने, क्योंकि अन्यथा आप कुछ इस तरह मिल जाएगा की जरूरत है ।
आप को पता है कि एक समारोह में कहा जाता myfunction बुला रहा था चाहता था कहते हैं:
function myFunction() {
console.log(arguments.callee.caller.name);
/* Other stuff... */
}
इस के लिए ब्राउज़र समर्थन नहीं है कि महान है, हालांकि, तो आप arguments.callee.caller.toString इस्तेमाल कर सकते हैं है() बजाय। ध्यान दें कि इससे आपको फ़ंक्शन की सामग्री वापस मिल जाएगी जिसे मेरा फ़ंक्शन कहा जाता है, इसलिए आपको उस फ़ंक्शन नाम को स्वयं से खोदने की आवश्यकता होगी।
या, आप इस तरह एक अच्छा समारोह स्टैक ट्रेस इस्तेमाल कर सकते हैं: फोन करने वाले समारोह के बारे में विस्तार से करने के लिए
function getStack(){
fnRE = /function\s*([\w\-$]+)?\s*\(/i;
var caller = arguments.callee.caller;
var stack = "Stack = ";
var fn;
while (caller){
fn = fnRE.test(caller.toString()) ? RegExp.$1 || "{?}" : "{?}";
stack += "-->"+fn;
caller = caller.arguments.callee.caller;
};
return stack;
}
स्टैक ट्रेस के माध्यम से http://www.amirharel.com/2010/01/25/using-caller-and-callee-for-stack-trace/
यह मदद मिलेगी: http://stackoverflow.com/questions/280389/कैसे-करें-आप-खोज-आउट-द-कॉलर-फ़ंक्शन-इन-जावास्क्रिप्ट – Sid
एक और लिंक http://stackoverflow.com/questions/147891/javascript-exception-stack-trace –