在6模块模块开发实例
本文阐述了模块在6的模块开发。分享给您参考,如下:许多人开发具有命名冲突的Javascript,例如模拟块级、命名空间、模块化开发和其他方法。
在模块化开发之前,已经对第三方库进行了模拟,与著名的AMD和CMD规范进行了比较。
两规格对应requirejs和seajs,分别。
现在,6提出了自己的模块化的统一标准。
一个6模块是一个包含JS code.es6文件没有所谓模块的关键词,一个模块是一个普通的脚本文件,除了以下两差异:
1中的模块。6自动开启严格模式。
进口和出口可用于2。模块。
进口和出口
我们可以通过导入和导出关键字导入或导出函数或对象。
从导出开始,模块中声明的任何东西都是默认私有的,如果您想为其他模块公开,代码的一部分必须导出:
/ / kittydar.js
导出功能detectcats(帆布、期权){
无功kittydar =新kittydar(选项);
返回kittydar.detectcats(帆布);
}
Export class Kittydar {
…图像处理的几种方法…
}
辅助函数不导出。
功能resizecanvas(){
…
}
…
不再有交叉的文件或跨模块的全局变量,和出口报关的部分是模块的公共API。在另一个文件中,我们可以导入这个模块使用detectcat方法:
演示程序 / / demo.js - Kittydar
进口detectcats } {从kittydar .js;
函数go(){
VaR的画布document.getelementbyid(catpix );
VaR的猫= detectcats(帆布);
drawrectangles(帆布、猫);
}
如果需要在多个模块中导入接口,如下所示:
进口{ detectcats,kittydar }从kittydar .js;
我们还可以通过一行代码公开该模块中需要公开的所有方法:
出口detectcats kittydar {,};
所以你不必一个接一个地添加导出关键字。
名称冲突
它描述了模块中的导入和导出,如果导入的变量名和模块中的变量名冲突,该怎么办放心,6让我们重命名导入的内容:
进口{翻flipomelet }从鸡蛋。JS;
进口{翻fliphouse }从房地产。JS;
这样,从鸡蛋中模块的翻转变为flipomelet,从房地产模块的翻转变为fliphouse,从而避免冲突。
同样,当模块导出变量名时,我们也可以重命名模块:
函数V1(){ }…
函数V2(){…}
出口{
作为streamv1 V1,
作为streamv2 V2,
作为streamlatestversion V2
};
希望本文有助于ECMAscript程序设计。