require 在多个文件中会产生独立的实例吗,还是只使用一个?

假设在 file1 文件中有以下代码:

local fileinstance = require("required_file")

这会加载文件并创建一个名为 fileinstance 的实例。如果在另一个文件 file2 中,我们也执行同样的代码:

local fileinstance = require("required_file")

这会创建一个全新的 "required_file" 实例,还是会默认使用之前的实例?我询问这个问题是因为我在 "required_file" 中有一个变量要设置,并且希望在所有其他需要它的文件中保持相同的值,而不会被重置为默认值。

点赞
用户734069
用户734069

除非您修改package.loaded或以其他方式更改require的机制,否则它不会加载同一个模块超过一次。它只会产生所加载模块的返回值。

2017-06-14 20:19:23