2

JohnResigの単純なクラス継承を使用する単純なアプリを書いています。私はこれをNode.jsで行っており、CoffeeScriptも使用しています。BrowserQuestゲームでこのファイルに似たコードを出力するCoffeeScriptを書き込もうとしていました。

しかし、私がこのようにCoffeeScriptを書くと、次のようになります。

cls = require './class'

module.exports = Model = cls.Class.extend({
  init: () ->
    console.log 'Model.init()'
})

「var」はモデルに自動的に追加されるため、正しくエクスポートされていないようです。

var Model, cls;

cls = require('../class');

module.exports = Model = cls.Class.extend({
  init: function() {
    return console.log('Model.init()');
  }
});

CoffeeScriptで「var」を使用しないように変数をマークする方法はありますか?

4

1 に答える 1

2

スコープが指定されていない限り、すべての変数はCoffeeScriptの変数で定義されます。

cls = require './class'

module.exports = GLOBAL.Model = cls.Class.extend({
  init: () ->
    console.log 'Model.init()'
})

コンパイル先:

var cls;

cls = require('./class');

module.exports = GLOBAL.Model = cls.Class.extend({
  init: function() {
    return console.log('Model.init()');
  }
});

例としてGLOBALを使用しましたが、任意のスコープを使用できます。

于 2012-04-09T07:07:50.050 に答える