名字空间

    全局变量会绑定到 window 上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现。

    减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中。例如:

    // 唯一的全局变量MYAPP:

    var MYAPP = {};



    // 其他变量:

    MYAPP.name = 'myapp';

    MYAPP.version = 1.0;



    // 其他函数:

    MYAPP.foo = function () {

    return 'foo';

    };

    把自己的代码全部放入唯一的名字空间 MYAPP 中,会大大减少全局变量冲突的可能。

    许多著名的JavaScript库都是这么干的:jQuery,YUI,underscore等等。