下面这段代码是什么意思,以及为什么这么写就能减少编译后的代码尺寸呢?有知道的吗,本人对CC不熟悉。
// A few optimizations for Google Closure Compiler
// will save us a couple kb in the release script.
var object = Object, array = Array, regexp = RegExp,
date = Date, string = String, number = Number,
math = Math, Undefined;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
普通写法
压缩后
这里的写法
压缩后
Google Closure Compiler 會把局部變量名稱縮短,但不會把全局變量縮短。(這也就是閉包編譯器的字面意思)
那段代碼就是爲了把全局變量變成局部變量。
其實有一種壓縮方式可以自動完成這一工作
甚至連 function 這樣冗長的關鍵字也可以壓縮。
比如:http://tool.lu/js/ 的「加密」(實際上是壓縮)
其中 function 出現了兩次
變成
代碼被壓所成
剩下的部分是「解密」(實際上是解壓縮)函數
其中全部代碼中只出現了一次 function。
這是 closure compiler 無論如何也做不到的。
所以我覺得,那段代碼中的做法,手動爲編譯器優化,除非代碼量較小,否則意義不大。
注释中写了
for Google Closure Compiler
这玩意一般用来压缩,比如
压缩之后,所有的变量名,都被改写成尽可能短的字符串以减小体积:
那么问题来了,全局变量怎么压缩?这玩意不是我自己声明的,名字不是说改就能改的,如果我的脚本中用到同一个全局变量很多次,又不能压缩,怎么办?
起个别名不就行了?
新技能get√
利用重命名方式压缩的时候 ,只需要重命名别名
被压缩为