其实要实现“模块”这个功能,并不需要语法层面的支持。Node.js也并不会增加任何JavaScript语法。实现“模块”功能的奥妙就在于JavaScript是一种函数式编程语言,它支持闭包。如果我们把一段JavaScript代码用一个函数包装起来,这段代码的所有“全局”变量就变成了函数内部的局部变量。
闭包其实就是回调函数,函数里面的函数,其本身并没有太多可以谈的东西,很多面试之所以这么重视是因为前端模块化的的思想是基于js的闭包特性;谈闭包不如谈谈模块化,
模块化:
可维护性高,可以引用node内置的模块也可以引用第三方模块
避免函数名,变量名冲突,相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突
网友评论