uglifyjs压缩代码遇到的ie8兼容性问题

1
2
3
4
5
6
var a = function() {
this.show();
}
a.prototype = {
show: function() {}
}

压缩后变成了 (大致结构)

1
2
3
4
5
6
var a = function b() {
this.show();
}
a.prototype = {
show: function() {}
}

在其他版本浏览器正常运行,因为这里b只在函数中有效且等于a,函数外部输出b则为undefined,但是如果使用ie8,b则变成了一个独立函数,并且与a不等于b。所以执行new a()时就会报对象不支持此方法的错误,因为此时this会在b的原型链中查找方法。

但是奇怪的只有一个地方出现了这个问题,其他地方正常,尚未找到原因。

Partager