1
축소 논리에 관한 질문.불변의 속성이 포함 된 자바 스크립트 minification 논리
// 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;
}
}
유이 압축기는 최적화로 다음을 수행
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}};
음, 물론, 이해 것이라고, 나는 생각을 참조하십시오. 어쩌면 일부 minifier는 그렇게합니다 (모두 같지는 않습니다). 여기에 질문이 있습니까? – sgroves
@sgroves 단순 모드에서의 YUI/GCC/JSMin/UglifyJS - 그 중 하나가 아닌 것 같습니다. 고급 모드의 GCC는 코드를 매우 까다롭게 요구하기 때문에 작동시키기 위해서는 매우 큰 과제입니다. 그래서 나는 그것에 대해 아직 확실하지 않습니다. – v2b
이 문제입니까? 내가 뭔가를 축소 한 후에 나는 다시는 그것을 보지 않는다. 누가 신경 쓰는지. 함수 외부의 변수에'com.example.dummy.type'을 대입하고 싶다면, 당신은 그렇게해야합니다 (또는, 금지하고,'with'를 사용할 수 있습니다). 또는 자신의 글을 쓸 미니언을 찾아보십시오. – sgroves