Ответ 1
Обновлено, чтобы включить предостережения в комментарии ниже CMS, Tim Down, MooGoo:
Ближайшая вещь, доступная для того, что вам нужно, вызывает .toString()
функцию, чтобы получить полный текст функции, например
function derp() { a(); b(); c(); }
alert(derp.toString()); //"function derp() { a(); b(); c(); }"
Вы можете попробовать здесь, некоторые предостережения, о которых нужно знать:
- Функция
.toString()
on зависит от реализации (Spec here section 15.3.4.2).- Из спецификации: возвращается функция, зависящая от реализации функции. Это представление имеет синтаксис FunctionDeclaration. Обратите внимание, в частности, что использование и размещение пробелов, ограничителей строк и точек с запятой в строке представления зависит от реализации.
- Отмеченные отличия в Opera Mobile, раннем Safari, не отображают источник, как мой пример выше.
- Firefox возвращает скомпилированную функцию после оптимизации, например:
-
(function() { x=5; 1+2+3; }).toString()
==function() { x=5; }
-