郑州网站建设公司qq,百度怎么发免费广告,银川免费网站建设,成都建站模板网站开发模块化模块化的基本概念模块化规范Node.js中模块化分类模块作用域向外共享模块作用域的成员Node.js中的模块化规范模块化的基本概念
指解决一个复杂问题时#xff0c;自顶向下逐层把系统划分成若干模块的过程对于整个系统来说#xff0c;模块是可组合#xff0c;分解和更换…
模块化模块化的基本概念模块化规范Node.js中模块化分类模块作用域向外共享模块作用域的成员Node.js中的模块化规范模块化的基本概念
指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程对于整个系统来说模块是可组合分解和更换的单元编程领域中的模块化就是遵守固定的规则把一个大文件拆成独立并相互依赖的多个小模块好处提高了代码的复用性提高了代码的可维护性可以实现按需加载
模块化规范
对代码进行模块化的拆分和组合需要遵守的那些规则如何引用模块如何向外暴露成员
Node.js中模块化分类 内置模块内置模块是Node.js官方提供的例如fspath http 自定义模块用户创建的每个js文件都是自定义模块 第三方模块由第三方开发出来的模块使用前需要先下载 加载模块使用强大的require方法可以加载需要的模块进行使用使用require方法加载其他模块时会执行被加载模块中的代码
//类似
const http require(http)
//加载自定义模块的时候路径要写对省略后缀名.js也可以成功加载
const http require(./index.js)模块作用域 在自定义模块中定义的变量和方法等成员只能在当前模块中被访问这种模块级别的访问限制叫做模块作用域 优点防止全局变量污染的问题
向外共享模块作用域的成员 module对象在每个js自定义模块中都要一个module对象谐音猫轴里面存储了和当前模块有关的信息,在js中打印module module.exports对象在自定义模块中可以使用 module.exports对象将模块内的成员共享出去供外界使用外界使用require()方法导入自定义模块时得到的就是module.exports所指向的对象共享成员注意点使用require()方法导入的结果永远以module.exports指向的 对象 为准
const num 1
function getnum(){console.log(方法,num)
}
module.exports.num2
//或者
module.exports.numnum
module.exports[getnum()]
//或者
module.exports.getnum1function(){console.log(666)
}
//这个指向的新对象会覆盖上面导致上面不显示相当于重新指向一个新的对象
module.exports{num:新对象,getnum,//共享方法newfunction(){console.log(新方法)}
}exports对象为了简化向外共享成员的代码Node提供了exports对象默认情况下exports和module.exports指向同一个对象但输出还得是module.exports 两者的使用误区 时刻谨记require()模块得到的永远是module.exports指向的 对象意思就是当多个module.exports指向的 不同 对象以最后一个对象为准意思也就是说exports不能直接共享对象当exports和module.exports指向不同对象时候接收时以module.exports指向的对象为准 Node.js中的模块化规范
遵循CommonJS模块化规范规定了模块的特性和各模块之间如何相互依赖规定每个模块内部module变量代表当前模块module变量是一个对象他的exports属性即module.exports是对外的接口加载某个模块其实是加载该模块的module.exports属性require()方法用于加载模块