PDA

Просмотр полной версии : Стектрейс, или вызвавшая функция


BuKT
26.10.2011, 10:50
Есть ли какой-нибудь оператор/метод, в котором хранится функция, вызвавшая текущую?

mooncar
26.10.2011, 11:22
Оператор или метод обычно производят действие, не хранят что-то.
Внутри функции всегда доступен объект arguments и у него есть соответственное свойство caller, оно возвращает ссылку на вызвавшую функцию:

function fn1()
{
fn2();
}

function fn2 ()
{
if (arguments.caller == fn1)
{
trace('fn2 была вызвана из fn1');
}
}

fn1();
Еще есть свойство callee - оно хранит ссылку на саму функцию

BuKT
26.10.2011, 11:50
Именно так, спасибо. Немного терминологией ошибся