What you want to do is export functionality. For instance, if you start with
class Foo
...
class Bar extends Foo
...
and you decide you move Foo
to its own file, that file should look like
class Foo
...
window.Foo = Foo
(where window.Foo = Foo
makes Foo
a global), and Bar
's file should start with the Sprockets directive
#= require Foo
(assuming that you've named Foo
's file Foo.js.coffee
). Each file is compiled into JS independently, but Sprockets will ensure that Foo
is included before Bar
.
Note that, as a shortcut, you can get rid of the window.Foo = Foo
line, and instead write
class window.Foo
...
or simply
class @Foo
...
to define a class named Foo
that's attached to the window
object.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…