gpt4 book ai didi

coffeescript - 使用 Meteor >0.6.0 和 CoffeeScript 的全局类

转载 作者:行者123 更新时间:2023-12-02 23:45:08 24 4
gpt4 key购买 nike

自 Meteor 0.6.0 发布并添加 file-level JavaScript variable scoping ,我在使用 CoffeeScript 类时遇到问题,每个类都在其各自的文件中定义。

foo.咖啡:

class Foo
...

subfoo.coffee:

class Subfoo extends Foo
...

正如预期的那样,由于 Meteor 0.6.0 中引入的更改,我收到以下错误:

ReferenceError: Foo is not defined

这是我的问题:如何使用 CoffeeScript 和 Meteor >0.6.0 处理跨文件的类定义?理想情况下:是否有一种方便的方法修改太多类的定义方式,以确保这些定义(以及我的应用程序的核心部分)不依赖于 Meteor?

最佳答案

docs 的 CoffeeScript 部分所述:

Global variables can be set in CoffeeScript by using this (or CoffeeScript's @ shorthand)

事实证明,CoffeeScript 类可以这样定义:

class @Foo

编译为:

this.Foo = (function() {
function Foo() {}
return Foo;
})();

假设 foo.coffeesubfoo.coffee 之前加载,您可以执行以下操作:

class @Subfoo extends Foo

当然,假设需要将 Subfoo 分配给全局范围。还值得一提的是,您需要以类似的方式公开您的集合。例如:

@Players = new Meteor.Collection 'players'

关于coffeescript - 使用 Meteor >0.6.0 和 CoffeeScript 的全局类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15831144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com