不要忘了为你的JavaScript命名

2016-02-19 16:43 5 1 收藏

下面是个简单易学的不要忘了为你的JavaScript命名教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

  这个世界上确实有很多写得很差的JavaScript。

  这听了让人很伤心,导致这种情况的一个最大原因就是JavaScript有一个隐式的全局作用域。这个功能本来是为那些偶尔写些代码的非开发人员准备的,但这可能是Necscape最坏的设计之一。但就像其他编程语言一样,JavaScript也还有非常大的潜力可以挖掘。

  在最初设计的时候,无论是JavaScript本身还是用JavaScript开发的应用程序都是很简单的。一些想法,比如外部聚合程序或者基于互联网的富客户端应用程序,在当时简直就是不可想象的。由于这种心态,宽松的类型限制以及把所有变量都定义为全局变量,就变得理所应当了。不幸的是,这种想法非常的缺乏前瞻性。

  在我们生活的世界里,充斥着通过复制粘贴建立起来的应用程序,这导致JavaScript框架遍地都是,而就算这样那些非程序员还是对这些框架敬而远之,而与此同时,在他们写的代码中,可能有七个循环使用同一个i变量来计数。

  听起来很糟糕么,不是么?

  如何才能做的更好

  JavaScript本身已经发生了一些改变,我们需要开始更加认真的对待这门语言。由于某些原因,没有几个人仔细研究JavaScript编程。正如Douglas Crockford所说,大部分人都在弄虚作假(most people just fake it)。我必须承认,我曾经也是这群人中的一份子。只有在后来我开始认真对待这门语言以后,我的代码质量才开始不断提升。现在我已经对这么语言有了全新的认识,而且我发现自己已经喜欢上它了。

  就算是JavaScript专家们也需要开始清理自己的代码。你可以尝试使用至少五个JavaScript框架,最后选择一个你最喜欢的,比如Prototype、Script.aculo.us、MooTools、DoJo、或者其他你顺手的,这些框架都可以在全局命名空间下提供很多的功能支持。

  但对我个人来讲,这些都还不足以让人满意。

  大家把太多的类库嵌入到程序中,而类库又带来了太多的全局变量,实际上我们根本不需要这么多全局变量。Prototype为什么不能离开现有的prototype而独立开发呢?为什么Dojo也是如此呢?YUI提供了独立的命名空间,jQuery也快了,希望每个人都能追随他们的脚步。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  这比你想的要简单

  命名空间通过一种简单的方式为你全部的代码定义了一个容器。在JavaScript里,你可以把任何内容放到这个容器里:变量、函数、对象或者其他什么。而操作简单到你只需增加一对花括号。

  var MIKEG = {};

  MIKEG是一个空对象。它将成为我用JavaScript编写的所有应用程序的起点。比如说,为了更好地操作XHTML和DOM,我决定增加两个函数,那么这两个函数将被置于MIKEG对象内。

  // 建立一个HTML子命名空间,用来保存所有和HTML相关的函数

  MIKEG.html = {};

  MIKEG.html.generateElement = function (sName, elParent, oAttributes) {

  // 这里写代码

  };

  MIKEG.html.applyAttributes = function (elTarget, oAttributes) {

  // 这里写代码

  };

  看吧,就是这么简单。现在我所有的应用程序中只有一个全局变量:MIKEG。通过这一个全局变量,我就可以访问所有我需要的内容。我的代码看起来很清晰也很容易理解。而且,只要我严格遵守这个规则,那么我的代码就不会和其他人发生冲突。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  YUI提供了一套非常棒的工具帮助开发者保持自己代码的条理化:YAHOO.namespace()。通过这个函数就可以直接把命名空间注册到YAHOO的类中。

  在开发过程中,我坚持使用自己的MIKEG命名空间,这样就可以不受其他类库的影响,因为我大部分的代码也都是独立的类库,可以被100%移植到其他项目中。我建立了一个专门的命名空间,用来调用YUI的代码。除了显式的调用YUI界面对象,我可以确保我的程序不会和其他变量进行交互。

  网络正在不断改变,JavaScript也越来越流行,JavaScript所依赖的平台也变得越来越稳定。我们有义务像专家们那样编写清晰的、稳定的和可扩展的代码。命名空间不可能解决JavaScript曾经存在的所有问题,但至少可以让我们的代码更加的易于维护。

来源:http://www.tulaoshi.com/n/20160219/1612900.html

延伸阅读
摘要                                                    &nbs...
虽然集成开发环境(IDE)可以为图形化应用程序提供很好的调试设置,但是它不允许你调试多线程的Java服务器程序。 幸运的是,有几个工具可以做到,例如日志应用程序接口(API)和Java调试器。开发人员也可以获得系统的线程转储,它可以在任何时间显示出系统状态。 为了得到系统线程转储,运行服务器程序并键入[Ctrl] []。这会输出所有...
标签: 孕前检查 怀孕
有些情况需要我们暂缓怀孕 对于喜欢孩子的人来说,结婚后想要快点要一个健康宝宝的心情是可以理解的,不过,如果你有下列情况之一,那么就要暂缓你的怀孕计划了。 结婚后,夫妇面临的首要问题就是怀孕与生育的问题。由于目前农村仍有不少的早婚现象,且缺乏一般的生理知识,不注意避孕与优生,往往在新婚后或身体存在疾病的情...
标签: 营养价值
做饭不仅是释放食材的天性时,味道与营养的碰撞,我们常用一些辅料来帮助食物的提味或是增色。好的烹饪技术再加上好的辅料,何愁做的菜不好吃呢?下面图老师小编就给大家介绍介绍食用辛香料的各种用处,以及烹饪技巧和速食烹饪。 辛香料是我们平时烹饪的辅助功臣,它可以弥补食材在味道上的不足,也可以为菜品的色彩增添一抹亮色。 ...
命名空间的概念 作者:王 军 很多初学C++的人,对于C++中的一些基本的但又不常用的概念感到模糊,命名空间(namespace)就是这样一个概念。 C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用...

经验教程

336

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部