May 18, 2010 19:04
Иногда, при написании объемного JS-кода требуется выяснить, что за функцию сейчас выполняет веб-сайт. Штатных кроссбраузерных средств для этого мне найти не удалось.
Однако в каждой функции есть массив arguments с переменной callee в которой содержится весь код функции. из него мы можем получить регулярным выражением и интересующую нас строку.
//var test = function () {
function test () {
this.fuName = /function(.+)\(/gi.exec(arguments.callee);
if (null != this.fuName) { this.fuName = this.fuName[1].replace(/ /g, '') }
if ('' == this.fuName) { this.fuName = 'anonymouse' }
alert(this.fuName);
function test2() {
//atata
}
};
test();
Если функция анонимная, то будет anonymouse
arguments,
function,
js,
name