gpt4 book ai didi

closures - 涉及不可变属性的 JavaScript 缩小逻辑

转载 作者:行者123 更新时间:2023-11-28 02:03:45 26 4
gpt4 key购买 nike

关于缩小逻辑的问题。

// Assumptions:
//com.example.dummy ns is available
//com.example.dummy.type is defined immutable -> Object.defineProperty

var test, test1, test2;
function execute_case(id) {
switch(id) {
case 0:
test = com.example.dummy.type;
break;
case 1:
test1 = com.example.dummy.type;
break;
case 2:
test2 = com.example.dummy.type;
break;
default:
console.log("default");
break;
}
}

YUI 压缩器将其压缩为,

var test,test1,test2;function execute_case(a){switch(a){case 0:
test=com.example.dummy.type;break;case 1:test1=com.example.dummy.type;break;
case 2:test2=com.example.dummy.type;break;default:console.log("default");break}};

压缩器执行以下优化不是合乎逻辑的吗?

var test, test1, test2;
var st = com.example.dummy.type;
function execute_case(id) {
switch(id) {
case 0:
test = st;
case 1:
test1 = st;
break;
case 2:
test2 = st;
break;
default:
console.log("default");
break;
}
}

可以看出,这里的压缩效果更好。

var test,test1,test2;var st=com.example.dummy.type;function execute_case(a){
switch(a){case 0:test=st;case 1:test1=st;break;case 2:test2=st;break;
default:console.log("default");break}};

最佳答案

这种优化对于未压缩的源代码有意义,但如果文件是通过 gzip 压缩(强烈推荐)交付的,则没有意义。

字符串别名往往会使压缩的源代码变得更大。

请参阅Closure-compiler FAQ

关于closures - 涉及不可变属性的 JavaScript 缩小逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com