这个article解释了如何在CoffeeScript中实现“模块模式”。
如何在javascript文件之间共享CoffeeScript class
?
例如:
class A
constructor: (@x) ->
如何在两个CoffeeScript文件之间共享A
?
答案 0 :(得分:0)
使用:
window.A = class A
constructor: (@x) ->
或:
class window.A
constructor: (@x) ->
两者都将编译为:
(function() {
var A;
window.A = A = (function() {
function A(x) {
this.x = x;
}
return A;
})();
}).call(this);
如果您愿意,也可以在两个地方@A
使用window.A
,因为this
指的是任何功能之外的window
。
答案 1 :(得分:0)
了解UMD。您可以通过以下方式实现UMD标头:
((root, factory) ->
### istanbul ignore next ###
switch
when typeof define is 'function' and define.amd
define ['underscore', 'backbone-forms'], factory
when typeof exports is 'object'
factory require('underscore'), require('backbone-forms')
else
factory root._, root.Backbone.Form
return
) @, (_, Form) ->
class A
constructor: (@x) ->
underscore
和backbone-forms
是示例依赖项。