文章目录

  1. 1. 全局变量陷阱
  2. 2. 单全局变量方式
  3. 3. 零全局变量方式
  4. 4. 参考文献

JavaScript中有不少陷阱,其中一个就是创建全局变量。

全局变量陷阱

JavaScript中有不少陷阱,其中一个就是不小心创建全局变量。当你给一个未被var语句声明过的变量赋值时,JavaScript就会自动创建一个全局变量。

function func(){
    var x;y;
}

这里,你认真阅读代码,你会发现,我不小心引入了一个全局变量,只因为我不小心敲入了分号而不是逗号。

单全局变量方式

在团队开发中,最佳的方式是尽可能少的全局变量。而单全局变量模式已经流行与各种JavaScript类库中广泛使用了。例如jQuery中的$和jQuery。
你可以试着把这个单变量理解成命名空间,例如Java的类,我们通过这个变量去访问我们的方法。另一种很好的应用就是模块化思想,关于模块化思想,后面我再仔细讲解。

var DateUtils = {
    getCurDate: function () {
    }
}

我们通过下面方式来访问。

DateUtils.getCurDate();

零全局变量方式

这种方式应用场景不多,如果你的脚本非常短,不需要和其他代码产生交互,可以考虑使用零全局变量来实现代码。
这里举两个典型的使用例子。
第一个例子,对window对象进行操作

(function(win){
    var dic = win.document;
})(window);

第二个例子,对jQuery对象方法扩展。

(function($){     
    $.fn.extend({     
       clearForm: function(){

       }
    })     
})(jQuery);  

参考文献

(书)「编写可维护的JavaScript」(Nicholas C. Zakas)

(完)

微信公众号

文章目录

  1. 1. 全局变量陷阱
  2. 2. 单全局变量方式
  3. 3. 零全局变量方式
  4. 4. 参考文献