2010-07-16 2 views
0

Каков наилучший способ найти функцию, вызывающую функцию?Найти функцию, вызывающую функцию в JS?

Например, если у меня есть

function first(){ 
    doSomething(); 
} 

// Lots of code 

function doSomething(){ 
    alert('Somehow, I know that' + ________ + 'function called me...'); 
    alert('Boink, hit an error, but now you know what function called me'); 
} 

Есть ли способ, чтобы получить, что вызов функции? Благодаря!

ответ

3

Заменить ______ с doSomething.caller.

+0

Это именно то, что я искал, спасибо. Что делать, если он не определен, но каждый экземпляр, который я вызываю в функции, находится внутри другой функции? Означает ли это, что я схожу с ума? – Matrym

+0

Вы используете IE? Он не поддерживает функцию Function.caller. –

+3

Я должен добавить, что как «вызывающий», так и «вызываемый» были удалены в ECMAScript 5, поэтому будьте осторожны, если вы планируете использовать этот код в долгосрочной перспективе. – casablanca

Смежные вопросы