用require对外提供接口的javascript代码
/*
用require对外提供接口的javascript代码
*/
define(function(require, exports, module) {
function tab () {
alert(
"这是模块化tab函数"
)
}
exports.tab = tab;
});
tab();
数是模块的地址;第二个参数是地址加载成功后的回调函数。我们先写一个地址,先看看js能不能加载进来。
用use调用tab函数HTML代码
<meta charset=
"utf-8"
>
<title>梦龙小站</title>
<!-- 引入sea.js -->
<script type=
"text/javascript"
src=
"sea/sea.js"
></script>
<!-- 调用模块tab函数 -->
<script type=
"text/javascript"
>
/*
这个方法有两个参数:第一个参数是模块的地址;第二个参数是地址加载成功后的回调函数。
*/
seajs.use(
"./js/a.js"
,function (meng) {
meng.tab();
})
</script>
这就是一个模块的调用形式。通过这样的调用形式就能避免命名冲突这个问题。比如a.js是由A小伙伴儿开发的。调用页面呢是由
B小伙伴儿开发的。如果A小伙伴儿写了个tab函数。B小伙伴儿同样写了个tab。这时候他们会互相影响吗?这时候就不会影响了。
因为a.js中的tab函数若想被调用就必须写成“meng.tab();”,而B小伙伴儿写的tab调用得写成“tab();”。可以发现,同样
是tab函数,但是调用方式不一样,导致了尽管名字相同,但是也不会互相冲突。
模块化解决冲突的HTML代码
<meta charset=
"utf-8"
>
<title>梦龙小站</title>
<!-- 引入sea.js -->
<script type=
"text/javascript"
src=
"sea/sea.js"
></script>
<!-- 调用模块tab函数 -->
<script type=
"text/javascript"
>
/*
引用A小伙伴儿写的a.js
*/
seajs.use(
"./js/a.js"
,function (meng) {
//调用A小伙伴儿的tab
meng.tab();
})
//B小伙伴儿写的tab
function tab () {
alert(
"B小伙伴儿写的tab"
)
}
//调用B小伙伴儿的tab
tab();
</script>