javaScript 模块化理解

JavaScript模块化是通过函数或{}来进行模块化处理的。
在es6之前,没有块级作用域的概念。通过函数创建一个封闭的执行环境,通过var Module={},建立一个对象。但是通过var Module={}很容易被人改写。所以JavaScript大部分通过自执行函数,对外暴露API或者值,来进行处理。

var module = (function() {
    var x = 12;
    return {
        "x1": "",
        "test": function() {
            console.log("test")
        }
    }
}
)()

现在有个需求,实现一个新的模块,需要继承module,该如何实现呢?
只需要模module当成入参传入新模块即可

var module1 = (function(module) {
    var x = 12;
    module.test2 = function() {
        console.log("test")
    }
    return module
}
)(module)

上面有个问题,加入module不存在,程序就会出错,那如何处理呢?

var module1 = (function(module) {
    var x = 12;
    module.test2 = function() {
        console.log("test")
    }
    return module
}
)(module||{})//传参进行兼容性处理

有了模块化之后,就制定了模块化规范CommonJS和AMD。
CommonJS是同步加载,

var module1=require("./a.js");
var module2=require("./b.js");

module2只有在module1加载完之后才执行。
AMD解决CommonJS同步加载文件导致浏览器卡死,制定了通过回调函数来实现异步加载。

var module1 = require("./a.js", function() {});
var module2 = require("./b.js", function() {})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本参

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值