WEB开发网
开发学院网页设计JavaScript 高质量JavaScript代码书写基本要点 阅读

高质量JavaScript代码书写基本要点

 2010-10-25 12:58:02 来源:WEB开发网   
核心提示:在浏览器中,全局对象可以通过window属性在代码的任何位置访问(除非你做了些比较出格的事情,高质量JavaScript代码书写基本要点(5),像是声明了一个名为window的局部变量),但是在其他环境下,例如前面代码中的sum = a + b这个情况,另外一个例子就是当你使用DOM(文档对象模型)引用时,这个方便的属

在浏览器中,全局对象可以通过window属性在代码的任何位置访问(除非你做了些比较出格的事情,像是声明了一个名为window的局部变量)。但是在其他环境下,这个方便的属性可能被叫做其他什么东西(甚至在程序中不可用)。如果你需要在没有硬编码的window标识符下访问全局对象,你可以在任何层级的函数作用域中做如下操作:

var global = (function () {
  return this;
}());
这种方法可以随时获得全局对象,因为其在函数中被当做函数调用了(不是通过new构造),this总是指向全局对象。实际上这个病不适用于ECMAScript 5严格模式,所以,在严格模式下时,你必须采取不同的形式。例如,你正在开发一个JavaScript库,你可以将你的代码包裹在一个即时函数中,然后从全局作用域中,传递一个引用指向this作为你即时函数的参数。


单var形式(Single var Pattern)
在函数顶部使用单var语句是比较有用的一种形式,其好处在于:

» 提供了一个单一的地方去寻找功能所需要的所有局部变量
» 防止变量在定义之前使用的逻辑错误
» 帮助你记住声明的全局变量,因此较少了全局变量//zxx:此处我自己是有点晕乎的…
» 少代码(类型啊传值啊单线完成)
单var形式长得就像下面这个样子:

function func() {
  var a = 1,
    b = 2,
    sum = a + b,
    myobject = {},
    i,
    j;
  // function body...
}
您可以使用一个var语句声明多个变量,并以逗号分隔。像这种初始化变量同时初始化值的做法是很好的。这样子可以防止逻辑错误(所有未初始化但声明的变量的初始值是undefined)和增加代码的可读性。在你看到代码后,你可以根据初始化的值知道这些变量大致的用途,例如是要当作对象呢还是当作整数来使。

你也可以在声明的时候做一些实际的工作,例如前面代码中的sum = a + b这个情况,另外一个例子就是当你使用DOM(文档对象模型)引用时,你可以使用单一的var把DOM引用一起指定为局部变量,就如下面代码所示的:

function updateElement() {
  var el = document.getElementById("result"),
    style = el.style;
  // 使用el和style干点其他什么事...
}
预解析:var散布的问题(Hoisting: A Problem with Scattered vars)


上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:高质量 JavaScript 代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接