标签:使用 export 回调 hub 参数 href amd seajs 浏览器
了解模块化思想
为后面的node学习打基础
命名冲突
文件依赖
https://github.com/seajs/seajs/issues/547
define(function (require, exports, module) {});
//使用单个模块,回调函数中的obj就是模块中的exports对象
seajs.use("modules/demo1/calc.js", function (obj) {
console.log(obj.add(5,6));
console.log(obj.mul(5,6));
});
//使用多个模块
seajs.use(["modules/demo1/calc.js","modules/demo1/power.js"] , function (o1,o2)
{
//o1 对应calc模块中的exports对象
console.log(o1.add(1,2));
//o2 对应power模块中的exports对象
console.log(o2.power(5));
});
define(function (require, exports, module) {
exports.add = function (a, b) {
return a + b;
}
exports.sub = function (a, b) {
return a - b;
}
});
//使用module.exports导出成员和exports用法一样
define(function (require, exports, module) {
module.exports.add = function (a, b) {
return a + b;
}
module.exports.sub = function (a, b) {
return a - b;
}
});
//使用module.exports导出对象,exports不可以
define(function (require, exports, module) {
//可以使用module.exports导出对象
module.exports = {
add: function (a, b) {
console.log("module");
return a + b;
},
sub: function (a, b) {
return a - b;
}
};
});
define(function (require, exports, module) {
//依赖另一个模块,js后缀可以省略
var o = require("./power");
module.exports = {
add: function (a, b) {
console.log("module");
return a + b;
},
sub: function (a, b) {
return a - b;
},
three: function (a) {
return o.power(a) * parseInt(a) ;
}
};
});
seajs.config({
//设置路径
base: "modules/demo4",
//设置别名
alias: {
c: "calc",
p: "power"
}
});
function loadJS(path, callback) {
var head = document.getElementsByTagName("head")[0];
var node = document.createElement("script");
node.src = path;
head.appendChild(node);
//浏览器兼容处理
var supportOnload = "onload" in node;
if(supportOnload) {
node.onload = function () {
callback();
}
}else{
node.onreadystatechange = function () {
if(node.readyState == "loaded" || node.readyState == "complete") {
callback();
}
}
}
}
//调用
loadJS("js/test.js", function () {
test();
})
CMD是懒加载
AMD是预加载
标签:使用 export 回调 hub 参数 href amd seajs 浏览器
原文地址:http://www.cnblogs.com/bici/p/6036998.html