1 / 5
文档名称:

JavaScript模块化开发一瞥.doc

格式:doc   大小:49KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JavaScript模块化开发一瞥.doc

上传人:xgs758698 2016/8/14 文件大小:49 KB

下载得到文件列表

JavaScript模块化开发一瞥.doc

相关文档

文档介绍

文档介绍:对于那些初学 JavaScript 、同时又正用它构建大型应用程序的开发者而言,必须面对的首要挑战是, 该如何组织代码。尽管起初通过在<script> 标记之间嵌入数百行代码就能跑起来,不过很快代码会变得一塌糊涂。其中的难点在于,对于组织我们的代码, JavaScrip t 并未提供任何明显帮助。从字面上看, C# 有using , Java 有import ——而 JavaScrip t 一无所有。这就迫使 JavaScript 作者去尝试各种不同约定( conventions ), 并用我们拥有的这种语言创建了一些实践方法来组织大型 JavaScript 应用程序。形成现代 JavaScript 基础的那些模式、工具及实践必将来自语言本身以外的实现—— a Murphy 模块模式( The Module Pattern ) 解决此问题使用最为广泛的方法是模块模式( Module Pattern ) 。我尝试在下面解释一个基本示例,并谈论它的一些属性。对于各种不同方法更好的描述和梦幻般的运行,请参阅 Ben Cherry 的帖子—— JavaScript Module Pattern: In-Depth (深入理解 JavaScript 模块模式)。(function (lab49) { function privateAdder(n1, n2) { return n1 +n2; } =function (n1, n2) { return privateAdder(n1, n2); // 原文代码有误,已修正。}; })( = || {}); 上面的示例中,我们只使用一些来自语言本身的基本功能,就创建了曾在 C# 和 Jav a 等语言中见过的类似结构。隔离( Isolation ) 你会注意到这段代码包在一个立即调用的函数里( 查看最后一行)。在浏览器中, 默认情况下会在全局范围( global scope ) 级别上对 JavaScript 文件进行评估( evaluated ), 因此在我们在文件内声明的任何内容都是随处可用的。想象一下, 如果在 中有句 var name ='...' ,而 中有另一句 var name ='...' 。那么第二个 var 语句会替掉第一句的值——这可不太妙。然而, 由于 JavaScript 拥有函数作用域( function scoping ) 级别,上例中所声明的一切都在该函数自身作用域中,与全局作用域相脱离。这意味着,无论未来在系统中发生什么,位于该函数中的任何内容都会被隔离开来。命名空间( Namespacing ) 在最后一行中,你会发现我们要么把 赋给其自身,要么把空对象直接量( empty object literal ) 赋给它。尽管看起来有些奇怪, 但是让我们一起看下某个虚构的系统,在那里我们拥有若干 js 文件,所有文件都用了上例中的函数包装器( function wrapper )。首个包含进来的文件会评估 OR ( 逻辑或) 语句, 并发现左侧表达式为 undefined (未定义)。由于 undefined 是虚假值( falsely value ), 因此

最近更新