包范围的变量

时间:2015-04-19 16:57:29

标签: javascript meteor

有没有办法定义一个仅在包中使用的变量,而不将其导出到客户端或服务器?例如,

//In /packages/fooPackage/foo.js
packageScopedValue = 'foo';

//In /packages/fooPackage/package.js
api.export('packageScopedValue', 'package');

//In /packages/fooPackage/other.js
doStuffWith(packageScopedValue);

不污染任何其他范围?

1 个答案:

答案 0 :(得分:1)

包范围的var是您不导出的任何全局变量。如果我在foo = "RAAARR"var(否pack.js)和console.log(foo)pack2.js说{},则会看到RAAARR。这是因为meteor基本上按照你给它的顺序连接每个js文件& 然后将其包装在IFFE中。

请注意,加载顺序很重要!!

api.addFiles(['pack.js', 'pack2.js'], 'client'); //works
api.addFiles(['pack2.js', 'pack.js'], 'client'); //undefined