LoginSignup
27
25

More than 5 years have passed since last update.

CoffeeScript で関数をエクスポートするには

Last updated at Posted at 2013-06-13
foo.coffee
foo = () ->
  ...

を JavaScript に変換すると、通常は次のようにラップされたコードが出力される。

foo.js
(function() {
  foo = function() {
    ...
  };
}).call(this);

このため foo() は外から呼び出すことができない。
foo() を呼び出せるようにするには次のいずれかの方法がある。

変換時に --bare オプションを指定する方法

$ coffee --bare -c foo.coffee

ラップされないコードが出力されるが、全てグローバルスコープに展開されるのであまり良くない。

foo.js
var foo;

foo = function() {
  ...
};

関数定義を変更する方法

関数定義を次のように変更する。

foo.coffee
@foo = () ->
  ...

これにより出力される JavaScript コードは次のようになる。

foo.js
(function() {
  this.foo = function() {
    ...
  };
}).call(this);

this == window なので、結果的に関数 foo はグローバルスコープにエクスポートされる。

クラスのエクスポート

クラス名の前に @ を付けるだけ

class @Klass
  ...
27
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
25