Javascript reuqure.js如何将主模块划分为子模块

Javascript reuqure.js如何将主模块划分为子模块,javascript,requirejs,Javascript,Requirejs,伙计们。我有一些关于如何在我的项目中使用require.js的问题 我有一些模块。例如: obj.js var MyModule = (function(){ var myObject = function(){ this.options = { foo: 'foo', bar: 'bar' }; }; myObject.prototype.foo = function(){ con

伙计们。我有一些关于如何在我的项目中使用require.js的问题

我有一些模块。例如:

obj.js

var MyModule = (function(){

    var myObject = function(){
       this.options = {
           foo: 'foo',
           bar: 'bar'
       };
    };

    myObject.prototype.foo = function(){
       console.log(this.options.foo);
    };

    myObject.prototype.bar = function(){
       console.log(this.options.bar);
    };

    return {
       getMyObject : function(){
          return new myObject();
       }
    }
})();
我在将对象用作实体方面没有问题。我在obj.js中附加了以下代码:

define(function(){
   return MyModule;
})
并在我的app.js模块中使用它

requirejs.config({
    baseUrl : 'lib',
    paths : {
        app:'../js/app'
    }
});

require(['app/obj'], function(MyModule){
    var someObj = MyModule.getMyObject();
    someObj.foo();
    someObj.bar();    
});

一切都好。但是如何将MyModule拆分为一些子模块呢?例如在模块中,我有一个对象,它的构造函数和两个方法。我是否可以将构造函数放入文件中,例如“mymodule.myobject.js”,将foo放入“mymodule.myobject.foo.js”,将bar放入“mymodule.myobject.bar.js”,并将其与require.js一起使用?如果是真的,我该怎么做呢?

你可以用这种方式。需要以下文件结构

- js
  -- constructors
   --- objectCostructor.js   
  -- objects
   --- objectModule.js
因此,
objectCostructor.js
是:

define(function(){
   return myObject = function(){
       this.options = {
           foo: 'foo',
           bar: 'bar'
       }
    }
})
objectModule.js

define(['constructors/objectCostructor'], function(Const){

    Const.prototype.foo = function(){
       console.log(this.options.foo);
    };

    Const.prototype.bar = function(){
       console.log(this.options.bar);
    };

    return {
       getMyObject : function(){
          return new Const();
       }
    }    
})