这种MWE展示了google闭包编译器如何将短obj[keyA]替换为更长的obj["some-very-long-key"]。
输入javascript:
var foo = new function() {
var keyA = 'some-very-long-key';
var keyB = 'another-key';
this.bar = function() {
obj[keyA] = {};
}
this.baz = function(data) {
obj[keyA][keyB] = data;
}
}();Google闭包编译器输出:
var foo = new function() {
this.bar = function() {
obj["some-very-long-key"] = {};
};
this.baz = function(a) {
obj["some-very-long-key"]["another-key"] = a;
};
};如果删除包装函数,则它就像我所期望的那样工作
输入javascript:
var keyA = 'some-very-long-key';
var keyB = 'another-key';
function bar() {
obj[keyA] = {};
}
function baz(data) {
obj[keyA][keyB] = data;
}Google闭包编译器输出:
var keyA = "some-very-long-key", keyB = "another-key";
function bar() {
obj[keyA] = {};
}
function baz(a) {
obj[keyA][keyB] = a;
}
;因为我在我的项目中经常使用长键,所以如果google闭包编译器将字符串文字保留在变量中,代码就会变得比它可能的要大。
更新1:我知道我想要的结果可能执行得更差,但我宁愿接受更短的代码。
发布于 2018-05-21 23:06:12
因为gzip -它通常使压缩大小变小。它甚至是在常见问题中
https://stackoverflow.com/questions/50456349
复制相似问题