带有Node.js的CoffeeScript无法使用类

时间:2013-09-18 07:52:47

标签: javascript node.js coffeescript

我有一个person.coffee文件,其中包含以下代码

class Person 
  constructor: (@name) ->
  talk: ->
    "hello"

module.exports = Person

现在我正在尝试在app.js中使用它

Person = require "./person"
p = new Person "Emma"
console.log p.talk

在控制台中打印[功能]。知道什么是错的

注意:我已经更新了空格。 解决方案:我在app.js中将p.talk更改为p.talk()并立即修复。

1 个答案:

答案 0 :(得分:4)

似乎你的缩进被破坏,你的代码将编译为

var Person;

Person = (function() {

  Person.name = 'Person';

  function Person(name) {
    this.name = name;
    ({
      talk: function() {
        return "hello";
      }
    });
  }

  return Person;

})();

虽然你想要这样的东西

class Person 
  constructor: (@name) ->

  talk: -> "hello"

将编译成

var Person;

Person = (function() {

  Person.name = 'Person';

  function Person(name) {
    this.name = name;
  }

  Person.prototype.talk = function() {
    return "hello";
  };

  return Person;

})();