commonJS规范、AMD规范、CMD规范、ES6模块化

这三个规范有什么用:

这三个规范可以帮助你加载各个模块,完成各个模块的作用域独立

那么模块是什么,作用域又是什么?

1、作用域:

作用域指在一个区域内有效的区域。

熟悉javascript的应该知道,javascript是函数级作用域,在函数内可以访问到函数外的变量,而函数外不能访问到函数内的变量,这个就是函数的作用域。

在函数外的变量会变成全局变量。一个比较大的项目需要很多变量命名,很容易就会造成命名冲突。那么该怎么解决呢,我们知道函数内的变量是不被外部访问的,自然也不会造成对命名冲突。那么该怎么使用函数去进行避免命名冲突呢?下面引入我们的模块:

2、模块:

模块具有对外可见,外部不可修改,作用域独立的效果。那么什么是模块呢?

个人理解为一个立即执行的函数,可以是一个匿名函数,并且立即执行。

(function(){
    var name = "张三";
    console.log(name)    // 张三
})()

console.log(name)    // undefined

这样可以成为一个模块,函数内部可以访问到变量,外部则访问不到。不过一般一个标准的模块应该这么用:

var user = (function(){
    var name = "张三";

    // 获取名字
    function getName(){
        return name;
    }
    // 修改名字的方法
    function setName(name){
        name = name;
    }
    // 向外提供的方法
    return {
        getName:getName,
        setName:setName,
    }
})()

console.log(user.getName())    // 张三
user.setName("李四")
console.log(user.getName())    // 李四

这样是不是就可以做到作用域独立,对外提供我想要提供的方法。实现了获取名字,修改的名字的功能。并且不会造成环境的变量污染。

 

commonJs规范:

下面看一个小例子:

创建一个index.js文件:

// index.js

var name = "张旭伟"

在创建一个 index2.js文件:

// index2.js

console.log(name)

创建一个html文件将他们一起引入:

<script type="text/javascript" src="index.js"></script>
<script type="text/javascript" src="index2.js"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值