模块化js

JS不像java那样

java的模块化:

下面这个class就是一个模块,专门处理人的事情

public class Person{

         //定义名字

private String name ;

        //获取名字

public String getName(){

        return this.name;

}

        .......

}


javascript的模块化:

//通常的做法,这种方式,不能定义私有数据

var module = {

  name : '',

  getName :  function(){

    return this.name;

   }

}


//另一种做法,可以保存私有变量,但是变量共享,

var module = (function(){

var name = "";

        function getName(){

return name;

}

      return {

        getName:getName

}

})();


//再加上一种方式,只执行一次,不共享,便于组件的开发 new xx()

var module = (function(){

var name = "";

        function getName(){

return name;

}

       return function(){

             var private_name;

            this.getName = getName;

}

})();

//但是模块的继承与复用,该用什么方式呢,java中有extend 与implement 关键写来处理如

  public Man extend Person{

      .......

 }

javascript的处理方式呢

var extend = function(child,parent){//继承不了 构造函数里的属性与方法
var F = function(){};
F.prototype = parent.prototype;
child.prototype = new F();
child .prototype.constructor = parent;
child .super = A.prototype;//实现子调用父类的方法
};

//其实说到底,模块化,就是一种规范,现在javascript的规范,一种是CommonJs 一种是AMD

CommonJs的实现如nodejs的require([module])形式,等待文件加载完成,进行下面的操作,主要是同步的方式读取磁盘上的文件,如果在浏览器端执行,会造成等待,

同步的操作,浏览器卡死现像


AMD是异步加载模块,便于在浏览器端使用,实现有require.js curl.js

require ([module], callback); 

如:

require (['math'], function (math) {
    math.add (2, 3);
}); 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值