2010-08-11 93 views
4

我有一个很大的js文件,我想分解成多个命名空间。JavaScript多个命名空间

  1. 这是一个好还是坏的方法与保持一切都在一个命名空间?

  2. 在NAMESPACE_FIRST中如何调用地图构建?

    var NAMESPACE_FIRST = { 
        init:function() { 
         alert("onload functions"); 
        }, 
        this.map:function() { 
         this.length = 0; 
        }, 
        this.map.prototype.build:function(){ 
         return this.length; 
        } 
    }; 
    
    var NAMESPACE_SECOND = { 
        upload:function() { 
          //do something 
        }, 
        delete:function() { 
          //do something 
        } 
    }; 
    
    $(function() { 
        NAMESPACE_FIRST.init(); 
    }); 
    

回答

1

有趣的问题!

首先,你的JavaScript有点错误。为了实现我想你想要的效果,你的第一个命名空间应该是这样的:

var NAMESPACE_FIRST = { 

    init: function() { 
     alert("onload functions"); 
    }, 
    map: function() { 
     this.length = 0; 

     NAMESPACE_FIRST.map.prototype.build = function() { 
      alert("1"); 
      return this.length; 
     } 
    } 
} 

所以,回答问题2,您onready将是这样的:

$(function() { 
    NAMESPACE_FIRST.init(); 

    var obj = new NAMESPACE_FIRST.map(); 
    obj.build(); 
} 

关于问题1中,我没有任何真正的意见。