Мне нужно найти динамический способ узнать, какая функция (более 2) выполняет другую определенную функцию, в которой будет возвращена функция вызывающего абонента.
В настоящее время у меня есть следующий код, который не работает:
function Hello() {
_alert("caller is " + Hello().caller);
}
Bye();
function Bye() {
Hello();
}
Сообщение об ошибке следующее: ReferenceError: Hello не определено
Если этот метод не работает, возможно, это возможно через параметры?
На целевую функцию может быть несколько Executer Funtions, которая доставляет имя функции Executer, в какое время она выполняется.
Используйте Hello
не называя его:
function Hello() {
alert("caller is " + Hello.caller);
}
Bye();
function Bye() {
Hello();
}
Но имейте в виду, что этот код будет работать только в нестрогом режиме. Такой код выдает ошибку:
'use strict';
function Hello() {
alert("caller is " + Hello.caller);
}
Bye();
function Bye() {
Hello();
}
Там были arguments.callee
и arguments.caller
(вы можете использовать их google), но теперь они устарели, и в настоящее время нет возможности узнать об этом вызывающем абоненте. Вы должны сделать что-то вроде этого:
function Hello(caller) {
alert("caller is " + caller);
}
Bye();
function Bye() {
Hello('Bye');
}