不要忘了为你的JavaScript命名

罗丶我好想你

罗丶我好想你

2016-02-19 16:43

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

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

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

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

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

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

  如何才能做的更好

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

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

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

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

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

  这比你想的要简单

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

  var MIKEG = {};

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

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

  MIKEG.html = {};

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

  // 这里写代码

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

  };

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

  // 这里写代码

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

  };

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

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

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

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

展开更多 50%)
分享

猜你喜欢

不要忘了为你的JavaScript命名

Web开发
不要忘了为你的JavaScript命名

JavaScript 编程引入命名空间的方法

Web开发
JavaScript 编程引入命名空间的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

心理健康:不要忘了将心比心

心理健康
心理健康:不要忘了将心比心

在JavaScript中实现命名空间

Web开发
在JavaScript中实现命名空间

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

CMS不要让MySQL为你流泪

编程语言 网络编程
CMS不要让MySQL为你流泪

JavaScript 编程引入命名空间的方法与代码

Web开发
JavaScript 编程引入命名空间的方法与代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

现场演示有趣的javascript效果

现场演示有趣的javascript效果

类似选项卡的切换效果

类似选项卡的切换效果
下拉加载更多内容 ↓