javascript - Meteor 0.8.x 命名空间

标签 javascript node.js namespaces meteor directory-structure

背景信息

我亲眼目睹了 Meteor 将每个文件包装到一个匿名函数中以防止填满全局命名空间。

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

  • 客户/
    • index.html
    • 样式.css
    • 客户端.js
    • 帮助者/
      • somehelper.js
  • 服务器/
    • server.js
  • 模特/
    • ...

我的问题

  1. 我如何使用 somehelper.js 文件中的对象 client.js?

  2. 如何创建自己的命名空间?例如:clientclient.helpersmodelsserver

最佳答案

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

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

另一种可能的解决方案 - 如果喜欢模块和类似的东西 - 将使用一些类似 AMD 的 Meteor 工具,如 this one例如。

关于javascript - Meteor 0.8.x 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25168288/

相关文章:

javascript - 拆分以@符号开头的多个单词

node.js - index.jade 没有出现在本地主机上

java - Node.js 有状态服务器

clojure - Duct框架中函数如何进入不同的命名空间?

matlab - 在 Matlab 中定义全局常量

javascript - angular-cli 和 scss 被内联

javascript - 存储有关对象的额外数据

node.js - 序列化事务冲突

hadoop - HDFS 文件系统命名空间

javascript - 使用 .no-js 类检测 js