Coffeescript将所有功能封装在一个文件中。这很好,但给我带来了一个问题:
假设我有一个coffeescript库,让我们说math.coffee
的函数gimme_prime(x)
返回第x个素数,你需要在一堆文件中使用这个函数。
所以,基本上,我如何重用coffeescript代码?
答案 0 :(得分:1)
根据OP的要求:
我评论说他可能需要的是模块模式,它指向this article。我将自己仔细看看这篇文章,因为乍一看它看起来确实很有希望。
要排序限制对模块将仅暴露给部分代码的函数的访问,您可以将这些文件中的对象传递给模块的IIFE,并将所有文件包装在IIFE中也是。这样,使用全局变量(抱歉)来回传递对象,并尽快指定undefined
。
由于JS是从上到下处理的,因此文件链接到页面的顺序以及将undefined
分配给该全局变量的位置确实很重要...但在某些时候,该模块的所有内容都相同要被其他文件访问,除非你使用了各种类型的lib,这在某些时候需要一个全局变量
答案 1 :(得分:0)
您有两种选择:
直接访问全局对象,例如window.gimme_prime = function() ...
使用一些实现AMD体系结构的JS工具包(例如参见Dojo工具包)。