[2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
来源:互联网 发布:温州淘宝运营培训班 编辑:程序博客网 时间:2024/06/10 19:20
双十一,购物节与光棍节,在这个特殊的日子里研究了一下模块化开发的我,突然想结合这个日子,以一个表白的例子浅谈es6模块化的用法。
在之前的 javascript 中一直是没有模块系统的,随着JavaScript的发展,涌现出了各种规范, 其中比较知名的是CommonJS和AMD。前者用于服务器,后者用于浏览器。
时代发展的速度总是令人有点惊讶,是的, ES6的出现给我们带来了它的模块化机制,一种完全可以取代现有的CommonJS和AMD规范,成为浏览器和服务器通用的模块解决方案。
es6 中新增了两个命令 export
和 import
, export
命令用于规定模块的对外接口,import
命令用于输入其他模块提供的功能。
结合光棍节举例:
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个 变量,就必须使用export关键字输出该变量。下面是一个JS文件,里面使用export命令输出变量。
①表白例子-主要人物模块:
模块介绍:leader.js,模块包含一个leader对象,leader里有媒人(matchmaker)、女方(girl)、男方(boy)三个对象,
每个对象都包含一个say方法。对象以及成员方法都创建好之后,使用es6的module.exports定义对外接口为leader。
// leader.jsvar leader = { agents : { say : function () { return "Please say somethings!"; } }, girl : { say : function () { return "Yes, i want to!!"; } }, boy : { say : function () { return "Would you want to be my girlfriend?"; } }}module.exports = leader;②表白例子-观众模块:
模块介绍:audience.js,这个模块相对更简单,只有一个用于起哄的say方法。
// audience.jslet audience = { say : function () { return "Promise him!!!Promise him!!!"; }}module.exports = audience;③表白例子-执行模块:
模块介绍:doing.js,之前定义了参与表白的主要对象以及观众以及需要做的事,但是没有去执行,doing.js模块的目的就是让表白事件执行起来,所以要先在头部使用es6的
import
导入其他模块提供的功能,随后定义了init()初始化方法,最后调用初始化方法。// doing.jsimport leader from 'leader';import audience from 'audience'let doing = { init : function () { leader.agents.say(); leader.boy.say(); audience.say(); leader.girl.say(); }}doing.init();此模块运行结果为:Please say somethings!Would you want to be my girlfriend?Promise him!!!Promise him!!!Yes, i want to!!大概意思:介绍对象的人对男孩说:说话呀!
男孩:做我女朋友好吗?
观众:答应他!答应他!
女孩:我愿意!
哈哈,结果总是这么美好。
注:以上代码为编写过程中直接输入,并未真实运行,假如有bug请指出,谢谢。
以上为es6模块化的基本用法,具体应用于实际开发时还有很多要注意的事项,比如为了兼容浏览器需要编译打包,此篇文章暂时不深入讨论。
- [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
- 光棍节那天 IT男的表白程序
- 以一个标准的程序员向你表白
- 又是一个新的光棍节
- 一个光棍的自白
- 一个光棍的呐喊
- 一个光棍的呐喊!
- 一个光棍的告白
- 一个光棍的呐喊!
- 一个光棍的呐喊
- 一个光棍的呐喊
- 一个光棍的呐喊
- 一个光棍的呐喊!
- 浅谈模块化的JavaScript
- 浅谈javascript的模块化
- 一个双鱼座男人的表白
- 一个程序员的爱情表白
- 一个程序员的爱情表白
- Spring-Session源码研究之Start_Servlet3.0
- 基于tesseract-orc的koa2 OCR Web小应用
- spring cloud使用Feign实现远程接口的调用
- python: 切片符号(slice notation)
- HTTP 500
- [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
- 软件工程(C语言实践篇)学习心得总结
- CodeForces
- 手机扫描识别证件软件颠覆传统录入
- java 8 lambda 表达式的优缺点总结
- 深入浅出的webpack3入门教程
- 【HDU】5971-Wrestling Match 二分染色
- 依赖注入通俗讲解
- RHEL 6.5系统安装配置图解教程(rhel-server-6.5)