在Meteor中,在另一个文件中使用对象(在一个文件中定义),而不使用全局作用域?

在Meteor中,在另一个文件中使用对象(在一个文件中定义),而不使用全局作用域?,meteor,Meteor,我有一个prices.js文件,该文件中定义了一个ShoppingCartContents对象 我想访问我的helpers.js文件中的ShoppingCartContents对象,在那里我将使用它创建一个全局助手 我只需将ShoppingCartContents设置为global,就可以轻松做到这一点,但我不想这样做。有更好的办法吗?根据文档,有包范围和文件范围。这两个作用域对我来说似乎不够精细(还有一个包导出功能,但我在一个包中做所有事情) 事情的范围只能限于: 一个且只有一个文件 整套

我有一个
prices.js
文件,该文件中定义了一个
ShoppingCartContents
对象

我想访问我的
helpers.js
文件中的
ShoppingCartContents
对象,在那里我将使用它创建一个全局助手

我只需将
ShoppingCartContents
设置为global,就可以轻松做到这一点,但我不想这样做。有更好的办法吗?根据文档,有
包范围
文件范围
。这两个作用域对我来说似乎不够精细(还有一个包导出功能,但我在一个包中做所有事情)

事情的范围只能限于:

  • 一个且只有一个文件

  • 整套


难道不应该有一个
文件导出功能吗?

如果您在包中工作,请将变量设置为全局变量。这样,您就可以在所有文件中为您的包访问它


如果你想要一个真正的全局变量,你必须显式地导出它,所以使用全局变量没有问题。

你确定吗?我在我的
prices.js
文件中有全局变量(我在我的.js文件顶部命名并声明它们为空哈希,而不使用
var
),当我测试网站时,我可以直接从Chrome开发者控制台访问这些变量,而无需任何问题,无论我在哪条路径上。我从来没有将这些变量显式导出为全局变量,而且它们肯定位于全局命名空间中。您是在包上下文还是应用上下文中工作?只是您的标准应用上下文。好的,那么您就不能完成整个全局操作。在应用程序上下文中,Globals将是Globals。我不确定您是否可以像在包中那样执行
此操作。ShoppingCartContents
,或者这是否也是一个有效的全局变量。该死。我听说人们编写应用程序是为了让应用程序的每个部分都成为一个有效的软件包。与应用程序的操作方式相比,它提供了对更多事情的更多控制。这是不是我应该为将来所有的项目考虑的事情?