DAY23: 自定义模块

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}`);

执行结果:

https://ithelp.ithome.com.tw/upload/images/20211005/20140244mi1fkfhtcP.png

这是最原始的方法,也就是如果今天是在一个大的项目中,有好几个档案,
需要这样反覆地出现这些的程序码,那麽这种写法会很不利於日後的维护和除错。
所以就先把这些函数储存在模块.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}`);

执行结果:

https://ithelp.ithome.com.tw/upload/images/20211005/20140244mxnENMW7fp.png

标示的红色区块代表newMoudle模块里的函数有哪些被输出了。
这样一个自定义模块就做好啦!!!

参考资料:
https://www.youtube.com/watch?v=7HCrawdnTuw&t=18s


<<:  D-10 AoP ? autofac ? DynamicProxy

>>:  Android 学习笔记26

工作的意义与价值

我今年 46 岁,属於在战後婴儿潮之後的所谓的 X 世代。在 ALPHA Camp,我每天需要跟不...

Day 12 均衡思考赚钱与不被花钱

依现况而言企业在强大的个资隐私规范之下,如何符合规范又不被在不知情况之下被罚又不知所云,在个资自主当...

Day05 - GCP 上的开发工具 Cloud Shell

Cloud Shell 介绍 Cloud Shell 是 GCP 提供的命令列介面,只要用浏览器就能...

【修正模型】4-2 呼叫堆叠(Call Stack)

今天要来提提昨天学到的执行上下文对於整个 JavaScript 执行过程中的角色以及当浏览器事件发生...

Day 25 Redis (上)

看到这个标题,你或许会有一点疑惑,为什麽他不是以 Flask 开头?因为它是一个资料库的名称,而 F...