码迷,mamicode.com
首页 > 编程语言 > 详细

javascript模块化

时间:2016-08-11 15:40:13      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

为什么会出现模块化
1.不定什么时候,自己就将全局变量改变了
2.函数名的冲突
3.依赖关系不好管理
如果b.js依赖a.js那么b必须放在a的下面
解决的办法
1.自执行函数来包装代码
mod=function(){
    var a,b;
    return {
        add:function(){
            a+b+s;
        },
        form:function(){
        }
    }
}();
2.jquery风格的匿名自执行函数
(function(window){
})(window);

最后模块化形成是
AMD
a.js
define(function(){
});
b.js
define(function(){
});
main.js
require([‘a‘,‘b‘],function(a,b){    
这种执行转态会将b提前预加载一遍,当前提有多个js文件的时候,就都要全部预加载一遍,所以这个的效率不是很好。
解决的办法是:
define(function(){
    require([‘a‘,function(a){
     a.hello();
    }]);
    $("#b").click(function(){
        require([‘b‘],function(b){
            b.hello();
        });
    });
});
AMD叫做异步模块定义
require.js语法
define(id,dependencies,factory);
id可选的参数 用来定于模块的标识
dependencies当前模块依赖的模块名称数组
factory模块化初始化要执行函数或者对象

在页面中使用require函数加载模块
require([dependencies],function(){})

AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块
1.定义无依赖的模块
define(function(){
});
require.config({//定义路径
    baseurl:"script/lib",
    paths:{
    }
});
require(["app/"],function(){
});
2.定义有依赖的模块
define([‘a‘],function(a){})
require.config({
});
require(["app/"],function(){
});

javascript模块化

标签:

原文地址:http://www.cnblogs.com/sunzyx/p/5760933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!