缩小如何工作并影响角度嵌套对象?

时间:2013-06-24 17:13:40

标签: javascript angularjs minify

缩小如何处理$scope.obj.subObj = { key: val ...};

据我所知,最后使用变量保持不变,

但如果我有html元素

<div>{{obj.subObj.key}}</div>

minify的结果会将代码缩短为a.b.c.key吗? 原谅我以业余时尚的方式提问,但我正在努力理解javascript缩小是如何运作的。

1 个答案:

答案 0 :(得分:9)

来自:http://en.wikipedia.org/wiki/Minification_(programming)

  

计算机编程语言(尤其是JavaScript)中的缩小(也是最小化或最小化)是从源代码中删除所有不必要的字符而不改变其功能的过程。

因此,如果minifier能够检测到它可以安全地将$scope.obj.subObj重写为a.b.c,那么它就会。

作为经验法则,来自全局范围的任何变量(例如documentwindowjQuery)都不会缩小,因为其他代码(超出范围的范围)这个文件)可能取决于它。

缩小的下一步是使用像Google Closure Compiler或Yahoo的YUI Compressor这样的压缩器。这些程序通常是更强大的缩放器。例如,它们可以通过内联函数替换函数调用,或者通过更短或更快的方法更改某个方法。这需要大量关于JavaScript和性能优化的知识。

您可以通过降低某些兼容性要求来提高压缩率,但我发现生成的代码非常不稳定,所以我认为我们还没有完成:)