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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题