时间:2021-07-01 10:21:17 帮助过:4人阅读
利用nodejs计算排列组合为例子:
排列组合需要用到阶乘,所以新建main.js和jiecheng.js文件和pailiezuhe.js文件(因为学习模块化,所以创建两个文件)
将一下代码复制进jiecheng.js,注释详解
var abc = 100; // 计算阶乘的方法 function jiecheng(n){ var con = 1; for(n;n>0;n--){ con = con*n; } return con; } // module.exports 表示本js文件所导出的内容,默认是一个空对象 // 通过给modul.exports赋值可以设置本js文件所导出的内容 module.exports = jiecheng;
上面最后是导出当前这个阶乘方法
所以pailiezuhe.js调用时先导入阶乘方法
pailiezuhe.js代码:
console.log(123); // 使用require可以在一个js文件中导入另一个js文件 // 参数表示要导入的js文件,内容是要导入的js文件的路径(可以是相对路径也可以是绝对路径) // 返回值是导入的js文件中所导出的内容 // ./表示本js文件所在的目录 var jc = require("./jiecheng.js"); // 使用require导入一个js文件仅仅是将这个js文件导出的内容导入,然后赋值给一个变量,并不会导入这个js文件中的其他内容,也就是说这两个js文件的作用域是隔离的 // console.log(abc); function pailie(n,m){ return jc(n)/jc(n-m); } function zuhe(n,m){ return jc(n)/(jc(m)*jc(n-m)); } // 使用module.exports只能导出一个内容,如果需要导出多个内容,可以把这些内容封装成一个对象,然后导出这个对象 // module.exports = { // pailie:pailie, // zuhe:zuhe // }; // 或者是给exports添加属性也是一样 module.exports.pailie = pailie; module.exports.zuhe = zuhe;
main.js代码
// 当代码量很大时,可以将代码分散在多个js文件中,每个js文件单独实现一个小功能,这些js文件共同组成一个完整的大功能 // 在浏览器环境中,可以通过多个script标签导入多个js文件.但是这种合并代码的方法有一下缺点: // 1,多个js文件的导入必须按照依赖关系先后导入 // 2,使用script标签导入的多个文件本质上是拼接成了一个js文件,所以这些js文件运行时都处于同一个全局作用域,那么这些js文件中不能使用同名的全局变量. // ------------------------------------------------------------------------------- // 在nodejs中也可以实现将不同的功能写入不同的js文件,在某个js文件中需要什么功能就导入哪个功能的js文件 // 这叫做nodejs的模块化 // 当 第一次 导入某个js文件时,这个js文件会执行并获得导出内容,如pailiezuhe.js里console.log()会执行 var plzh = require("./pailiezuhe.js"); // 某个js文件运行得到导出内容之后,导出的内容会被缓存起来,下次再导入这个js文件时,就会直接获得上次的导出结果,不再运行js文件,例如下面这两行如果不注释也不会执行pailiezuhe.js的console // var q = require("./pailiezuhe.js"); // var w = require("./pailiezuhe.js"); var n = 10; var m = 4; console.log(plzh.pailie(n,m)); console.log(plzh.zuhe(n,m));
相关推荐:
轻松创建nodejs服务器(3):代码模块化_node.js
nodejs的require模块(文件模块/核心模块)及路径介绍_基础知识
以上就是nodejs模块化:nodejs计算排列组合(代码)的详细内容,更多请关注Gxl网其它相关文章!