缩小如何处理$scope.obj.subObj = { key: val ...};
据我所知,最后使用变量保持不变,
但如果我有html元素
<div>{{obj.subObj.key}}</div>
minify的结果会将代码缩短为a.b.c.key吗? 原谅我以业余时尚的方式提问,但我正在努力理解javascript缩小是如何运作的。
答案 0 :(得分:9)
来自:http://en.wikipedia.org/wiki/Minification_(programming)
计算机编程语言(尤其是JavaScript)中的缩小(也是最小化或最小化)是从源代码中删除所有不必要的字符而不改变其功能的过程。
因此,如果minifier能够检测到它可以安全地将$scope.obj.subObj
重写为a.b.c
,那么它就会。
作为经验法则,来自全局范围的任何变量(例如document
,window
或jQuery
)都不会缩小,因为其他代码(超出范围的范围)这个文件)可能取决于它。
缩小的下一步是使用像Google Closure Compiler或Yahoo的YUI Compressor这样的压缩器。这些程序通常是更强大的缩放器。例如,它们可以通过内联函数替换函数调用,或者通过更短或更快的方法更改某个方法。这需要大量关于JavaScript和性能优化的知识。
您可以通过降低某些兼容性要求来提高压缩率,但我发现生成的代码非常不稳定,所以我认为我们还没有完成:)