JavaScript может получить функцию как текст?

JavaScript может получить функцию как текст? Я думаю как инверсия оценки ().

function derp() { a(); b(); c(); }

alert(derp.asString());

Результат был бы чем-то как "(); b (); c ()";

Это существует?

24
задан Brandon 31 July 2010 в 21:46
поделиться

2 ответа

Обновлено: в комментарии ниже включены оговорки из CMS , Тим Даун , MooGoo :

Ближайший объект доступный для того, что вам нужно, - это вызов функции .toString () для получения полного текста функции, например:

function derp() { a(); b(); c(); }
alert(derp.toString()); //"function derp() { a(); b(); c(); }"

Вы можете попробовать здесь , с некоторыми оговорками. хотя известно:

  • Функция .toString () on зависит от реализации ( Spec здесь section 15.3.4.2 )
    • Из спецификации: Возвращается зависящее от реализации представление функции. Это представление имеет синтаксис FunctionDeclaration . Обратите внимание, в частности, что использование и размещение пробелов, знаков конца строки и точек с запятой в строке представления зависит от реализации.
    • Отмечены различия в Opera Mobile и ранних версиях Safari, ни один из них не отображает исходный код, как в моем примере выше.
  • Firefox возвращает скомпилированную функцию после оптимизации, например:
    • (function () {x = 5; 1 + 2 + 3;}). ToString () == function () {x = 5; }
36
ответ дан 28 November 2019 в 23:37
поделиться
function derp() { a(); b(); c(); }

alert(derp.toString());
5
ответ дан 28 November 2019 в 23:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: