在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程序设计。