我有一个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()并立即修复。
答案 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;
})();