require.config()加载的模块分两类,
一类是AMD模式的,即以define定义的模块,可以直接加载
// math.js
define(function (){
var add = function (x,y){
return x+y;
};
return {
add: add
};
});
加载方法如下:
// main.js
require(['math'], function (math){
alert(math.add(1,1));
});
二、加载非规范的模块(shim的使用方式)
// app.js
function sayHello(name)
{
alert(
'Hi '
+name);
}
// main.js
require.config({
shim: {
'app': { //这个键名为要载入的目标文件的文件名,不能随便命名。
exports: 'sayHello' //exports的值为my.js提供的 对外接口的名称
}
}
});
require(['app'], function(sayHello) {
alert(sayHello())
})
导出一个函数,意味着我们得到了一个javaScript类
但是如果在my.js中写了很多function,整合成一个function有点麻烦,想直接导出?
方法如下
// app.js
function sayHi(name)
{
alert(
'Hi '
+name);
}
function sayHello(name)
{
alert(
'Hiello '
+name);
}
// main.js
require.config({
shim: {
app: {
init: function() { //这里使用init将2个接口返回
return {
sayHi: sayHi,
sayHello: sayHello
}
}
}
}
});
require(['app'], function(a) {
a.sayHi('zhangsan');
a.sayHello('lisi');
});