requirejs中定义AMD模块规则如下:
define(function(){ var ProductManager={ Create:function(){ console.log("创建产品"); require(["cate"],function(cate){ cate.Write(); cate.Add(); }); } } return ProductManager; });
模块的定义包含在define 中,并且可以返回一个对象,一直有个疑问 var $ = require('jquery'); 怎么能够接收返回值,在网上看到这个代码之后,自己也尝试的用了一下,但是不能获得模块的对象,只能以回调的方式获得模块对象. 原来我是用错了
define(function(require, exports, module){ var p=require("Product"); console.log(p); p.Create(); module.exports={ In:function(){ p.Create(); console.log("创建入库单"); } } });
困惑了我好久,之前没有怎么研究过requirejs,要获取返回模块需要在define 定义的时候显示指定 require 回传对象。 这里的require 和全局的require对象好像是有点区别的。
require的定义为:在ES6的模块中导入的CommonJS模块和AMD模块都有一个默认的
导出,如果你用require()
加载这些模块也会得到相同的结果——exports
对象。
参考:
http://requirejs.org/docs/api.html
http://www.infoq.com/cn/articles/es6-in-depth-modules