Ваше мнение важно для нас.
Поделитесь своими предоложениями и пожеланиями.

Как в JavaScript определить вызывающую функцию?


Как в JavaScript функции узнать, какая функция ее вызвала(предыдущая в стеке вызовов)?
0

Ответы

0
Ссылка
У каждой функции есть свойство caller.

Информация с сайта https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/caller:

function myFunc() {
if (myFunc.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + myFunc.caller);
}
}


Свойство Function.caller не является частью стандарта ECMA3, но поддерживается всеми основными браузерами, включая IE и Firefox.

Если вы используете анонимную функцию, вы можете получить доступ к свойству caller через свойство arguments.calee:

function() {
if (arguments.callee.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + arguments.callee.caller);
}
}


Обратите внимание, код получает доступ к данной функции, а затем через нее обращается к тому же нестандартному свойству caller. Обращаться напрямую к свойству arguments.caller не рекомендуется, поскольку оно устарело и может не поддерживаться некоторыми современными браузерами.
0
Ссылка
Будет ли это работать в Safari?
0
Ссылка
Свойство caller не является частью стандарта ECMA3, но поддерживается всеми основными браузерами, включая: IE, Firefox, Safari.
Для того, чтоб отвечать на вопросы или зарегистрируйтесь.
ИТ-цитата
"Специалист - человек, который избегает мелких ошибок, неуклонно двигаясь к глобальному заблуждению."
Annonimus