NodeJS文件在执行的时候为什么会被包裹到一个函数中?

谢本寅
  • 12
(function (exports, require, module, __filename, __dirname) {
  /* 
Node.js在执行每一个js文件,都会将执行的js文件内容放到一个函数中去,请问为什么不直接执行?
Node版本 6.14.1
*/
});
回复
阅读 144
1 个回答

因为js只有全局作用域,函数作用域,块作用域(ES6), eval作用域这四个。eval由于一些问题很少被使用,块作用域由于是ES6的,存在一些兼容性问题,所以比较常见的就是全局作用域和函数作用域。为了防止与全局作用域冲突,以及兼容老的代码,所以就采用了函数作用域,也就是使用函数包裹一个js文件,这样可以实现作用域隔离。

你知道吗?

宣传栏