【发布时间】:2015-05-24 10:46:30
【问题描述】:
我有一个这样的 .js,我正在压缩它:
'use strict';
!(function () {
var object = typeof exports != 'undefined' ? exports : this;
}());
当我使用 Google Closure 编译器时,我没有收到任何错误,并且“this”正在引用窗口对象。 但是当我使用 Uglify (使用 mangle true 或 false )时,它会在“this”上得到一个 undefined (所以对象是 undefined 并且我收到错误)。有谁知道为什么?
基本上我可以将 this 更改为 window 并且它会起作用,但我担心的是其他代码、库或其他我将来会丑陋的东西。
注意:我正在使用带有选项的 grunt-contrib-uglify 插件: mangle: true, preserverComments: false, sourceMap: true
【问题讨论】:
-
那么缩小后的结果是什么?
-
typeof exports != 'undefined'不好。使用!==严格要求 -
@m59 你说的“坏”是什么意思?有什么细节吗?
-
@m59 这还不错,因为
typeof运算符肯定会返回一个字符串。 -
@m59 好吧,我猜如果你的 Douglas Crockford 很糟糕 :) 如果你想遵循并倡导更严格的编码标准,那么一定要长寿和繁荣,但事实是它不会在这种情况下没有任何区别。
标签: javascript anonymous-function uglifyjs grunt-contrib-uglify