Самоисполняющиеся функции как свойства литералов объектов
Я минимизирую некоторый код, используя 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, но вы не можете его сериализовать... и т. Д.