Javascript Meteor 0.8.x名称空间 背景信息

Javascript Meteor 0.8.x名称空间 背景信息,javascript,node.js,namespaces,meteor,directory-structure,Javascript,Node.js,Namespaces,Meteor,Directory Structure,我见过Meteor将每个文件包装成一个匿名函数,以防止填充全局名称空间 假设我有一个类似的文件结构: 客户端/ index.html style.css client.js 助手/ somehelper.js 服务器/ server.js 型号/ 我的问题 如何使用文件client.js中somehelper.js中的对象 如何创建自己的名称空间?例如:客户端,客户端.助手,模型和服务器 你说得对!每个文件都有自己的本地名称空间。要定义全局变量,需要删除前导的var。防止

我见过Meteor将每个文件包装成一个匿名函数,以防止填充全局名称空间

假设我有一个类似的文件结构:

  • 客户端/
    • index.html
    • style.css
    • client.js
    • 助手/
      • somehelper.js
  • 服务器/
    • server.js
  • 型号/

我的问题
  • 如何使用文件client.jssomehelper.js中的对象

  • 如何创建自己的名称空间?例如:
    客户端
    客户端.助手
    模型
    服务器


  • 你说得对!每个文件都有自己的本地名称空间。要定义全局变量,需要删除前导的
    var
    。防止污染全局命名空间的常见做法是使用单个全局对象(例如,
    App
    )承载所有全局范围的符号。可以在顶级
    lib
    文件夹中定义此对象,以解决一些与文件加载顺序相关的问题

    如果出于某种原因,您的代码取决于文件加载顺序,您可以将其某些部分包装在
    Meteor.startup
    例程中,以防止出现未定义的类型错误


    另一个可能的解决方案-如果喜欢模块和类似的东西-将使用一些AMD模仿工具来模仿流星,例如。

    关于,如果我有一个文件
    helperA
    和一个文件
    helperB
    ,我可以重用
    define()
    在两个文件中都添加模块吗?我不认为可以将模块添加到多个文件中,如果这是您要问的。但这里肯定有办法实现你想要的。