Javascript 包作用域变量
有没有办法定义一个只在包中使用的变量,而不将其导出到客户端或服务器?比如说,Javascript 包作用域变量,javascript,meteor,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)
//In /packages/fooPackage/foo.js
packageScopedValue = 'foo';
//In /packages/fooPackage/package.js
api.export('packageScopedValue', 'package');
//In /packages/fooPackage/other.js
doStuffWith(packageScopedValue);
在不污染任何其他作用域的情况下?包作用域的var是您不导出的任何全局变量。如果我在
pack.js
中说foo=“RAAARR”
(novar
),在pack2.js
中说console.log(foo)
,你会看到RAAARR
出现。这是因为meteor基本上是按照您给定的顺序连接每个js文件,然后将其封装在IFFE中
请注意,加载顺序并不重要
api.addFiles(['pack.js', 'pack2.js'], 'client'); //works
api.addFiles(['pack2.js', 'pack.js'], 'client'); //undefined