2016-09-06 52 views
0

這個article解釋瞭如何在CoffeeScript中實現「模塊模式」。在CoffeeScript中共享類?

如何在JavaScript文件之間共享CoffeeScript class

例如:

class A 
    constructor: (@x) -> 

我如何共享兩個CoffeeScript的文件之間A

+0

你是如何編譯/運行你的咖啡標記? Webpack/Requirejs/node? –

回答

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 ide任何功能。

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) -> 

underscorebackbone-forms是一個例子依賴。