【问题标题】:CoffeeScript variable scoping and inheritance in Meteor > 1.0Meteor > 1.0 中的 CoffeeScript 变量作用域和继承
【发布时间】:2015-11-09 04:35:34
【问题描述】:

我在 CS 包的官方 Meteor 文档中找不到任何关于使用 @(this) 使变量全局化的信息。

  1. 在新版本中是否已弃用?我们现在应该只使用shared 变量吗?
  2. 除了智能包和智能导入策略之外,他们为什么不支持 node.js require 之类的东西?
  3. 如果有人想通过 Coffee 编写 OOP 代码,他应该将所有类公开给整个应用程序。或者他应该做一个服装包。 还有其他方法吗?

【问题讨论】:

    标签: oop meteor coffeescript


    【解决方案1】:

    我最近开始使用 Meteor,因为我也使用 CoffeeScript,所以我也遇到了范围界定问题。

    有两个脚本,client.coffeeserver.coffee。我已经在server 中声明了一个集合,它应该是自动发布的,并且也可以从client 访问。由于作用域,我的 collection 变量在 server.coffee 之外不可见。

    在 CoffeeScript 中,您可以编写“纯 JavaScript”!

    localCollection = new Mongo.Collection 'MyCollection' # this is not accessible outside of server.coffee
    
    `globalCollection = localCollection;` # this, however, is...
    

    在 CoffeeScript 中,包含在反引号中的所有内容都被视为 JavaScript。解析器将按原样将其放入生成的 JavaScript 文件中的正确位置。多亏了这一点,它不会在文件的开头生成var globalCollection;,并且多亏了这个变量去package, or global scope

    还有……
    包有export,还有share object。我都试过了,但不知何故我无法让它们工作。我对 Meteor 真的很陌生,还没有广泛地玩过这两个东西......

    【讨论】:

    • 没有回答我的问题。我仍然不明白为什么他们没有使用 require 我理解 meteor 有不同的理念,但缺少 require 方法意味着我们无法进行适当的模块化设计。
    猜你喜欢
    • 1970-01-01
    • 2015-05-16
    • 2011-02-17
    • 2013-03-01
    • 2011-06-04
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2015-04-05
    相关资源
    最近更新 更多