2013-09-18 2 views
0

Я в person.coffee файл, содержащий следующий кодCoffeeScript с Node.js не работает с классами

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

module.exports = Person 

Теперь я пытаюсь использовать его в app.js

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

Он печатает [Function] в консоли. Любая идея, что что-то не так

Примечание: Я обновил пробелы. Решение: Я изменил p.talk на p.talk() в app.js и теперь исправлен.

+2

втяжку является перепутались. У 'конструктора' и' talk' одинаково отступают. – Amberlamps

ответ

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; 

})(); 
+0

Спасибо. Я изменил отступ, но теперь его печать [Функция], а не «привет» любую идею? –

+0

Хорошо, я добавил() в конце разговора в app.js и его работу сейчас. –

Смежные вопросы