2

我正在编写一个使用John Resig 的简单类继承的简单应用程序。我在 Node.js 中这样做,我也在使用 CoffeeScript。我正在尝试编写 CoffeeScript 以在 BrowserQuest 游戏中输出类似于此文件的代码。

但是,当我这样编写 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 上都用一个 var 定义,除非它被赋予了一个作用域:

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 回答