2012-04-09 9 views
2

私はJohn Resig's simple class inheritanceを使用する単純なアプリケーションを作成しています。私はNode.jsでこれをやっていて、CoffeeScriptも使っています。私はthis file in the BrowserQuest gameのようなコードを出力するCoffeeScriptを書こうとしていました。コンパイル時にvarを追加しないでください。

でも、私はこのようなの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」を使用しないように変数をマークする方法はありますか?

+1

CoffeeScriptのクラス構文を使用してみませんか?代わりにそれを使用するのを止めてしまうかもしれない何かがありますか? – Sandro

答えて

2

それは範囲を与えられていますしない限り、すべての変数はCoffeeScriptの上のVARで定義されています。私は例としてGLOBALを使用しましたが、あなたがいずれかを使用することができます

var cls; 

cls = require('./class'); 

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

cls = require './class' 

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

はにコンパイル範囲。

関連する問題