arguments вызвавшей функции
Как на javascript узнать ссылку на объект arguments, вызвавшей текущую функцию, функции, внутри текущей функции?
-- По другому сформулирую вопрос. Функция A вызывает функцию B. Мне надо код только в теле функции B, который может вернуть ссылку на объект argunents. Но объект arguments не функции B, a функции A. т.е. ссылку которую можно получить находясь в функции A просто написав "arguments". Какой это код? -- что мне сообственно нужно. Мне нужно получить возможность двигаться по стеку вызовов функций, вот я знаю что, 1.можно узнать текущую функцию: arguments.callee, 2.можно узнать вызвавшую функцию: arguments.caller В принципе не пойму разработчиков javascript, которые вместо второй возможности не сделали возможность получать arguments вызвавшей фунции, тогда можно было бы легко реализовать и вторую возможность например: arguments.callerArguments.callee вместо arguments.caller, а главное путешествовать по всему стеку вызовов: arguments.callerArguments.callerArguments.... а не только на одну две позиции. Или уже есть свойство со смыслом вышеприведенного callerArguments, только я о нём не знаю? |
Никак.
Стек в текстовом виде не во всех браузерах можно получить, создав объект ошибки new Error(). |
А разве arguments.callee.caller.arguments - не то, что надо?
function A(){ B(); }; function B(){ alert(arguments.callee.caller.arguments[0]); }; A('argument'); |
Sweet,
действительно. |
Спасибо, Sweet - сработало! :)
я просто думал что свойства callee и caller - это свойства только объекта arguments, оказывается они есть и у объекта функции... |
Часовой пояс GMT +3, время: 20:15. |