模块化开发的核心?

 我来答
猪八戒网
2023-06-06 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部

模块化开发就是有组织地把一个大程序拆分成独立并互相依赖的多个小文件(模块)。

模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等)

ES6之前,JavaScript语言一直没有模块(module)体系,无法把大文件有组织地划分成小块,并管理之间地依赖。但是模块化的思想一直存在。因为用Javascript写的代码越来越庞大,而网页也越来越像桌面APP。如此庞杂的代码,如果不进行模块化,就可能引发命名冲突,造成不易复用、维护性高。

核心:导出和导入;


1、普通模块化:

同级新建文件index.html,a.js.b.js三个文件;


index.html中引入a.js和b.js。(a.js在前)


<scriptsrc="a.js"></script>

<scriptsrc="b.js"></script>

a.js中导出:


varmodules=(function(){

varname='jack';

varflag=true;

functionnum(a,b){

returna+b;

}

varobj={};

obj.flag=flag;

obj.num=num;

obj.name=name;

returnobj;

})()

b.js中导入:


console.log(modules.name)//jack

console.log(modules.num(1,6))//7

console.log(modules.flag)//true

在b.js可以取出a.js中obj的值。


2、commonJs模块化:export

a.js导出:


varname='jack';

varflag=true;

functionnum(a,b){

returna+b;

}

export.module({

name,

flag,

num

)}

b.js导入:


var{name,flag,num}=require('a.js的路径');//name,flag,num可以直接用

varobj=require('a.js的路径');//obj.name='jack',obj.flag=true,obj.num(1,6)=7

3、es6模块化:export导出,import导入

export的基本使用:


a.js:

导出方式一:

exportvarname="jack";

exportvarheight=1.88;

导出方式二:

varname="jack";

varheight=1.88;

export{name,height};

b.js

import{name,height}from'a.js';

console.log(name);//jack

console.log(height);//1.88

4、导出函数或类:

//直接导出

//exportconstnum1=123;

//导出函数:

exportfunctionadd(num1,num2){

returnnum1+num2

}

//导出类

exportclassPerson{

run(){console.log('this.a')}

}

//导入函数和类

import{add,Person}from'./export.js'

console.log(add(1,2));

constp=newPerson();

p.run()

5、exportdefault:导入者自己命名。(同一个模块中只能有一个default)

//导出

exportdefaultfunction(){

console.log('this.default');

}

//导入

importdefrom'./export.js';

de();

6、普通html中引入export的两个js文件,需要给script的type设为module;

<scripttype="module"src="a.js"></script>

7、全部统一导出:*可以导入模块中所有的export变量,

import*asallfrom'./export.js';//all,为*的别名,方便后续使用。

console.log(all.num1,'aaa')

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式