从 CoffeeScript 文件导出类

发布于 2024-12-06 17:48:16 字数 284 浏览 1 评论 0原文

如果我在一个单独的文件中定义了一个 CoffeeScript 类,并且从主脚本中调用该类,那么我可以使文件中的函数全局可见,但不能使该类全局可见。

包含的文件是:

root = exports ? this

root.add = (a, b) ->

      return a + b

class root.userModel
      username: 'Aaaa'
      name: 'Bbbb'

我可以从我的主代码访问该函数。我怎样才能创建班级?

If I have a CoffeeScript class defined in a separate file, which I'm calling from my main script, I can make the functions within the file globally visible, but not the class.

The included file is:

root = exports ? this

root.add = (a, b) ->

      return a + b

class root.userModel
      username: 'Aaaa'
      name: 'Bbbb'

I can access the function from my main code. How can I create the class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

做个ˇ局外人 2024-12-13 17:48:16

您的代码确实会使 userModel 成为全局变量,假设 exports 未定义且 thiswindow。如果您遇到问题,请检查这些条件。

Your code will indeed make userModel a global, assuming that exports is undefined and this is window. If you're having problems, check those conditions.

素染倾城色 2024-12-13 17:48:16

class ... 形式是一个返回值的表达式。因此,您需要将该 class 表达式的结果分配给导出对象上的属性。像这样:

root.userModel = class userModel
  username: 'Aaaa'
  name: 'Bbbb'

更新:

哎呀,不是真的,应该可以作为 class root.userModelroot.userModel = class userModel 正常工作。

The class ... form is an expression that returns a value. So, you'll want to assign the result of that class expression to a property on your export object. Like so:

root.userModel = class userModel
  username: 'Aaaa'
  name: 'Bbbb'

Update:

Oops, not true, should work fine either as class root.userModel or as root.userModel = class userModel.

烟燃烟灭 2024-12-13 17:48:16

只需在类名称前添加“@”即可定义您的类:

class @ClassName
  blablabla: -> blablalblablabla

Just define your class with a '@' before its name:

class @ClassName
  blablabla: -> blablalblablabla
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文