先解释一下factory 参数,factory可以是一个函数,也可以是一个对象
作为对象,字符串时候,表示模板的接口就是该对象字符串如:
define({“to”:"bar"});//json字符串
define('i wang success');//字符串
define(function(require,exports,module){
demo
});//函数时,默认会传入三个参数require(构造方法),exports(接口),module(模板)
define详解: define是一个全局函数用来定义模块define define(factory)这个可以接受
factory中的参数
define define(id?,deps?,factory)可以接受两个以上的参数
id//模块标示
deps//依赖模板
define define('hello',['jquery'],function(require,exports,module){
demo
})
define.cmd object
一个空对象判断当前页面是否有cmd模板加载器
if(typeof defien ==="function"&&define cmd){
}
require详解
require function require 是factory的第一个参数
define(function(require,exports){
var a=require('./a');//获取a接口
a.doSomething();//调用a方法
})
require.async require.async(id, callback?)
require.async 方法在模块内部异步加载,并在加载完成后执行指定回调
define(function(require,export,module){
require.async(['./b','./d'],dunction(b,d){ //异步加载多个模块,完成时执行回调
d.doSomething();
b.doSomething();
});
});
require.resolve (id)解析绝对路径
define(function(require exports){
consolelong(require.resolve('./b'));//返回一个http的绝对路径
});
export 详解
object是一个对象,向外提供模板接口
define(function(require,export){
exports.moumou='23456';//对外提供moumou 属性
export.some=function(){};//对外提供some 方法
return{ //注意return或者modle.export赋值(ps:export是module.export的一个引用)
moumou:'23456',//通过return直接提供接口
some:function(){}
}
});
module详解
module储存了当前模块相关的一些属性和方法
module.shuzu array shuzu 是一个数组表示当前模板的依赖
当借口是某个类时通过module.exports来实现
define(function(require,exports,module){
console.log(module.export===exports);
module.exports= new someclass();
cosole.log(module.exports===exports);
});