0

我有一个这样的.js,我正在压缩它:

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

当我使用 Google Closure 编译器时,我没有得到任何错误,并且“this”正在引用窗口对象。但是当我使用 Uglify (使用 mangle true 或 false )时,它会在“this”上得到一个未定义的结果(所以该对象是未定义的,我收到了错误)。有谁知道为什么?

基本上我可以将它更改为窗口,它会工作,但我担心的是其他代码、库或其他我将来会丑陋的东西。

注意:我正在使用带有选项的 grunt-contrib-uglify 插件:mangle:true,preserverComments:false,sourceMap:true

4

1 回答 1

4

这是预期的行为:

'use strict';函数的上下文是,undefined而不是全局对象。

于 2015-03-20T22:06:41.247 回答