0

Coffeescript 将所有功能封装在一个文件中。这很好,但给我带来了一个问题:

假设我有一个咖啡脚本库,假设math.coffee有返回第 x 个素数的函数gimme_prime(x),你需要在一堆文件中使用这个函数。

那么,本质上,我如何重用咖啡脚本代码?

4

2 回答 2

1

根据 OP 的要求:

我评论说他可能需要的是模块模式,这将他引向了这篇文章。我自己会仔细看看这篇文章,因为乍一看它看起来很有希望。

为了限制对模块仅对部分代码公开的函数的访问,您可以将这些文件中的对象传递给模块的 IIFE,并将所有文件也包装在 IIFE 中。这样,使用全局变量(对不起)来回传递对象,undefined您可以尽快分配给该变量。
由于 JS 是从上到下处理的,因此文件链接到页面的顺序以及分配undefined给该全局变量的位置确实很重要......但在某些时候,该模块可以被其他人访问文件,除非您使用某种库,否则在某些时候这将需要一个全局变量

于 2013-05-02T19:48:28.853 回答
0

你有两个选择:

  1. 直接访问全局对象,例如window.gimme_prime = function() ...

  2. 使用一些实现 AMD 架构的 JS 工具包(参见例如 Dojo 工具包)。

于 2013-05-02T19:21:04.700 回答