Самоисполняющиеся функции как свойства литералов объектов

Я минимизирую некоторый код, используя UglifyJs, и у меня возникла проблема. Если у меня есть самоисполняемая функция как свойство литерала объекта, то при минификации она сводится к функции.

т.е.

var o = {
    c : 1,
    t : (function(){
        return 'this worked';
    }())
};

uglifyjs t.js > u.js

var o={c:1,t:function(){return"this worked"}()};

Предположительно, есть причина, по которой такой способ не рекомендуется. Что / почему это? а также, если есть обходной путь, который я хотел бы знать, так как клиентский код предпочел бы использовать свойство.

Благодарю.

1 ответ

Решение

Он вернул ту же самозапускающуюся функцию без окружающих скобок... поэтому я не вижу проблемы...

Как примечание, JSON не поддерживает функции, объявленные в его содержимом. Вы можете использовать его, так как это все еще код JavaScript, но вы не можете его сериализовать... и т. Д.

Другие вопросы по тегам