JavaScript基础对象创建模式之声明依赖模式(023)
2014-09-17 00:12 Bryran 阅读(240) 评论(0) 编辑 收藏 举报运用了命名空间(Namespace)模式后, 就可以使用一些JavaScript库了,比如YAHOO作用YUI2库的全局对象,可以通过 YAHOO.util.Dom 和 YAHOO.util.Event得到YUI2库中有关Dom和事件的支持。在程序中使用这些模块就是声明依赖(Declaring Dependencies)模式:
var myFunction = function () { //dependencies var event = YAHOO.util.Event, dom = YAHOO.util.Dom; //use event and dom variables //for the rest of the function... };
这是一种极简单的模式,但却可带来许多好处:
- 明确使用全局对象中声明的模块,使得开发人员记得引用这些库文件;
- 在代码块的最上方声明对象的引用,使得引用容易被找到;
- 使用一个本地的变量,能解决对象嵌套引用时的性能问题;
- 许多代码缩小(minification)的工具都支持对本地变量名的缩小;
如果不使用这种模式,代码缩小时有着不同的效果:
function test1() { alert(MYAPP.modules.m1); alert(MYAPP.modules.m2); alert(MYAPP.modules.m51); } /* minified test1 body: alert(MYAPP.modules.m1);alert(MYAPP.modules.m2);alert(MYAPP.modules.m51) */ function test2() { var modules = MYAPP.modules; alert(modules.m1); alert(modules.m2); alert(modules.m51); } /* minified test2 body: var a=MYAPP.modules;alert(a.m1);alert(a.m2);alert(a.m51) */