我正在尝试使用 [this library](https://code.google.com/p/autotags/ in meteor)。
首先,当我尝试将所有单独的 javascript 文件安装到 client/compatibility 文件夹时,从常量 js 文件调用 AUTOTAGS 时收到错误消息:
AUTOTAGS = { ... } // autotags-js-core.js
AUTOTAGS.TAG_CONSTANTS = [ 'news','research','favourite' ]; // autotags-js-constants.js
它一直说 AUTOTAGS 未定义。我从阅读有关全局范围的信息中推断出,任何带有 VAR 的外部库如果您希望具有全局范围,请将其置于兼容性之下。
如果这是正确的,那么为什么将所有单个文件放在 lib/external 下时范围不是全局的?AUTOTAGS = {..} 没有 var 意味着它对整个应用程序都可用,对吗?
相反,我通过将所有 javascript 文件合并到 lib/external 下的一个 js 文件中来获得工作范围。我以为我明白了,但情况变得更糟。
在单个 js 文件中 - 任何以闭包开头的函数都是该文件的本地函数,而不是全局范围,而分配给变量名的任何函数都使其成为全局变量?
function(something() { ... } ) // closure, local
generateTags = function() { ... } // global scope?
var generateTags = function() { .... } // is this local or global?
如果 var generateTags 函数是本地的,那么将它放在客户端/兼容性下会使其成为全局吗?最后!- 我得到一个模糊的概念,我应该从这里定义 lib/environment.js 下的全局变量 - https://github.com/oortcloud/unofficial-meteor-faq#where-should-i-put-my-files是真的?