首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript学习札记(十五) 对象即时初始化

2012-10-20 
JavaScript学习笔记(十五) 对象即时初始化对象即时初始化(Immediate Object Initialization)另一种可以防

JavaScript学习笔记(十五) 对象即时初始化
对象即时初始化(Immediate Object Initialization)另一种可以防止全局作用域"污染",和前面的数的立即执行函数类似,就是对象即时初始化(Immediate Object Initialization)模式;这种模式使用一个带init()方法的对象,init()在对象创建后被立即执行;这个init()方法会完成所有的初始化工作:

({...}).init();({...}.init());
这种模式的好处和立即执行函数模式一样:当你执行一次性的初始化工作时,保护了全局作用域(没有增加全局变量);在语法上,对象即时初始化看起来可能比仅包裹的一段代码匿名函数要复杂些;但如果你的初始化工作更加复杂(实际上它们经常这样),会向整个初始化过程添加代码;例如:私有的辅助函数都会清楚的被区分出来,因为他们都是这个临时对象的属性;然而在立即执行函数中,它们很可能就是分散的函数。
这种模式的一个缺点就是绝大部分JavaScript压缩工具压缩这种模式的时候没有压缩在函数的中的代码有效率;私有属性和方法不会被重命名更短的名称,因为从压缩工具的角度,这样是不安全的。
这种模式主要适合一次性的工作,并且这个对象在init()调用完成方法结束之后就不会再被访问;如何你想在init()方法执行之后持有这个对象的引用,你可以很简单的实现这个功能,通过在init()方法的末尾加上 return this;







热点排行