我注意到,根据我们选择的方式或模式,我们的脚本在生成的大小(gzipped和未gzipped)方面存在很大差异。
例如,为我们的项目选择原型模式很可能会生成更大的结果文件(未压缩、压缩和gzipped)。
以下是两个完全相同的代码片段的简短比较:
- 原型模式 138字节 gzipped (286字节未压缩) - 无模式 87字节 gzipped (110字节未压缩)
使用Google Closure编译器进行压缩。
仅通过查看生成的压缩代码就可以看出结果非常明显: 原型模式
var MyBluePrint=function(){this.name="demo";this.someFunction=function(){alert("some function")};this.someOtherFunction=function(){alert("some other function")};this.showMyName=function(){alert(this.name)};this.someFunction();this.someOtherFunction();this.showMyName()};new MyBluePrint;
没有模式
var MyBluePrint=function(){alert("一些函数");alert("另一些函数");alert("演示")};new MyBluePrint;
任何使用对象属性的内容都不会被压缩,例如:
//function declarations
this.someFunction = function(){ ... }
//objects
var demo = {
isActive: 'aaaa'.
name: 'aaaa'
}
在创建项目时,我们是否应该真的考虑这个问题?有时候我会决定使用普通变量而不是充满属性的对象,只是为了压缩多次使用的长属性名。