【发布时间】:2018-05-22 07:05:04
【问题描述】:
如果我错了,请纠正我,函数require() 以某种方式将.js 文件导入到当前文档中,因此如果var name 都在两个模块中,那么第二个模块会覆盖第一个模块吗?
以及如何定义仅文件范围的变量
请注意,我想在 .js 文件中的任何函数之外定义我的变量,而不是在 global scope 中
解决方法是什么,使用关键字var 会影响变量范围吗,在javascript 中定义function 以外的范围,module 对象是否可以用于在一个中定义私有变量文件
module1.js
var name = 'i am module 1'
foo = () => console.log(name)
module.exports = foo
module2.js
var name = 'i am module 2'
foo = () => console.log(name)
module.exports = foo
main.js
const module1 = require('./module1')
const module2 = require('./module2')
module1() // "i am module 1" or "i am module 2"?
module2() // "i am module 2"
【问题讨论】:
-
"i am module 1" or "i am module 2"?那么,是哪一个?它只会输出其中之一,您的大量测试向您展示了什么? -
有点困惑我使用了 var 关键字并且没有使用它现在坚持使用它因为它有效,我想了解什么定义了除函数之外的变量范围以及我如何将我的项目划分为单独的文件而不用担心相互污染范围
标签: javascript node.js module scope