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