首先看下常规开发中javascript非结构化组织代码 复制代码

 function appInit () {

    //程序初始化操作}  function appModule1 () {    //程序功能模块1   }  function appModule2 () {    //程序功能模块2   }  function appModule3 () {    //程序功能模块3   }  $( document ).ready(appInit )
复制代码

 

从技术角度看,这种代码方式并没有任何错误,但是通过下图可以发现这些函数都是建立在全局名称空间下

若在全局名称空间中创建很多变量很快会导致严重的问题、比如在全局名称空间中定义了名为i、_或$的变量。

如何改善呢?

1、使用一个单例创建一个应用程序名称空间

复制代码
var myApp = {     init : function () {          //程序初始化操作    },     appModule1 : function () {         //程序功能模块1    },     appModule2 : function () {         //程序功能模块2    },     appModule3 : function () {         //程序功能模块3    } } $( document ).ready(myApp.init)
复制代码

对于上面的新结构,打开chrome查看window下的属性时仅看到单个变量myApp,这中方式极大的降低了变量名冲突的可能性。

这一模式允许多个开发人员跨越多个文件,在单个应用程序名称空间之下进行协同开发。从代码结构角度来说,可以将网站的每一部分拆成独立文件。比如本例中的common.js、

appModule1.js、appModule2.js和appModule3.js。每个开发人员都有一个自己负责的网站部分和相应的javascript文件,开发人员只需要关注自己的文件,不需要担心会发生冲突。

 

复制代码
common.js  var myApp = {     common : {            init : function () {                  //初始化应用程序通用代码           }     } }  appModule1.js  myApp.appModule1 = {      init : function
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信