我有一个当前全局设置的变量,我在两个不同的require()
函数中使用。如何将它从第一个require()
传递到另一个?
答案 0 :(得分:2)
据我所知:你没有。让它们读取相同数据的唯一方法是将它放在某处,以便它们都可以读取它。由于两个require()
函数都放在普通的JavaScript文件中,因此它们共享的唯一范围是全局范围。
另一种可能性是将它传递给require()
的回调函数,但这意味着你必须编写一个返回数据的“模块”(或使用dojo/text
插件来读取文件只读)。
建议不要有两个require()
语句。如果我们还在谈论相同的秒表(我已经读过你的代码),你应该将所有事件处理程序放在一个require()
块中。然后你可以将它们都需要的数据放在require()
块中,它们都可以读取它。
拥有多个require()
块的一些原因无益:
require()
块,则会让人感到困惑。大多数人不管怎样都不使用它(推荐与否)。dojo/query
和dojo/dom
等常用模块,则必须每次都将它们添加到模块列表中。我不认为它会下载文件两次,但它仍然需要编写/维护。require()
块需要访问相同数据时,您会遇到类似这样的范围问题。这意味着你必须将它们放在全局范围内(这是另一种不好的做法),用简单的数据编写一个模块(不是很有用),或者你必须将它们都包装在一个函数中,你必须手动执行它(令人困惑) )