0

У меня есть .js, как это и я уплотняя его:уродовать с функцией анонимной

'use strict'; 
!(function() { 
    var object = typeof exports != 'undefined' ? exports : this; 
}()); 

Когда я использую Closure Compiler Google Я не получить возможные неточности и «это» ссылается оконный объект. Но когда я использую Uglify (с mangle true или false), он получает undefined в 'this' (поэтому объект не определен и я получаю ошибку). Кто-нибудь знает, почему?

В принципе, я могу просто изменить это на окно, и это будет работать, но моя забота о других кодах, библиотеках или чем-то еще, что я уродливаюсь в будущем.

Примечание: Я использую хрюкать-вно-уродовать плагин с параметрами: калечить: истинные, preserverComments: ложные, sourceMap: истинные

+1

Итак, каков результат после минимизации? – zerkms

+1

'typeof exports! = 'Undefined'' плохой. Сделайте это строгим с '! ==' – m59

+0

@ m59, что вы подразумеваете под «плохим»? Любые детали? – zerkms

ответ

4

Ожидается поведение:

с 'use strict'; функцией-х context - undefined, а не глобальный объект.

+0

Действительно? Не знал этого. Моя основная проблема заключается в том, что тот же самый код работает в компиляторе google закрытия. –

+0

@ThiagoMirandadeOliveira Что это за «тот же самый код»? – zerkms

+0

Извините за мой английский. Но в основном тот же код в Google Closure Compiler работает –