0

次のコードを含む person.coffee ファイルがあります

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

module.exports = Person

今私は app.js でそれを使用しようとしています

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

コンソールに [Function] を出力します。何が間違っているかという考え

注: スペースを更新しました。解決策: app.js で p.talk を p.talk() に変更し、修正しました。

4

1 に答える 1

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;

})();
于 2013-09-18T08:02:36.260 に答える