在DAY21: NPM模块管理工具有提到Nodejs主要有内置模块(包含核心模块)、npm第三方模块,但还有一个是自定义模块。
在DAY22: 为甚麽要模组化?也说明了模块化的重要性,除了内置模块与第三方模块,我们也可以自己"做出"客制化的模块!!
首先今天会做个简易版的加减乘除计算机,依照DAY22: 为甚麽要模组化? 的解说,这台计算机就像是一个巨大的水池,
然而我可以依照计算机各个功能做分割,把加、减、乘、除给模块化。
首先,再档命名为模块.js
分别给加、减、乘、除定义函数。
函数名为add
,并给予两个参数,相加後的答案指定给result
,最後回传result。
接下来减、乘、除,大同小异,就省略介绍罗~
function add(n1,n2)
{//加
result=n1+n2
return result;
}
function subtract(n1, n2)
{//减
result=n1-n2
return result;
}
function multiplication (n1,n2)
{//乘
result=n1*n2;
return result;
}
function division(n1,n2)
{//除
result=n1/n2;
return result;
}
若在同一个档案建立一个变量,直接给予参数,储存加减乘除回传的各个值。
let addresult=add(100,200);
console.log(`100 + 200 = ${addresult}`);
let subtractResult=subtract(300,300);
console.log(`300 - 300 = ${subtractResult}`);
let multiplicationResult=multiplication(100,2);
console.log(`100 * 2 = ${ multiplicationResult}`);
let divisionResult=division(200,2);
console.log(`200 / 2 = ${divisionResult}`);
执行结果:
这是最原始的方法,也就是如果今天是在一个大的项目中,有好几个档案,
需要这样反覆地出现这些的程序码,那麽这种写法会很不利於日後的维护和除错。
所以就先把这些函数储存在模块.js
这个档案中。
接下来,再建立一个新的专案,命名为计算机.js
,放主要程序。
const newModule=require("./模块.js");
设定一个对外接口。
给予一个常量 newModule,再用require()
导入,并设定函数所在的路径。
接下来,要告诉程序需要模块.js
的哪些个函数被输出
module.exports.add=add; //加
module.exports.subtract=subtract; //减
module.exports.multiplication=multiplication; //乘
module.exports.division=division; //除
每个函数都被模块化後,就可以被主程序调用。
调用语句为
//调用语句(常量名称.函数名称)
newModule.add //加
newModule.subtract //减
newModule.multiplication //乘
newModule.division //除
把上面的程序码加入调用语句,就可以调用模块.js
里的函数了
let addresult=newModule.add(100,200);
console.log(`100 + 200 = ${addresult}`);
let subtractResult=newModule.subtract(300,300);
console.log(`300 - 300 = ${subtractResult}`);
let multiplicationResult=newModule.multiplication(100,2);
console.log(`100 * 2 = ${ multiplicationResult}`);
let divisionResult=newModule.division(200,2);
console.log(`200 / 2 = ${divisionResult}`);
执行结果:
标示的红色区块代表newMoudle模块里的函数有哪些被输出了。
这样一个自定义模块就做好啦!!!
参考资料:
https://www.youtube.com/watch?v=7HCrawdnTuw&t=18s
<<: D-10 AoP ? autofac ? DynamicProxy
我今年 46 岁,属於在战後婴儿潮之後的所谓的 X 世代。在 ALPHA Camp,我每天需要跟不...
依现况而言企业在强大的个资隐私规范之下,如何符合规范又不被在不知情况之下被罚又不知所云,在个资自主当...
Cloud Shell 介绍 Cloud Shell 是 GCP 提供的命令列介面,只要用浏览器就能...
今天要来提提昨天学到的执行上下文对於整个 JavaScript 执行过程中的角色以及当浏览器事件发生...
看到这个标题,你或许会有一点疑惑,为什麽他不是以 Flask 开头?因为它是一个资料库的名称,而 F...