Coffeescript 为什么这个咖啡脚本会出现以下错误 返回错误 TypeError:对象函数(){ 返回console.log(this.name); }没有方法“sayName” 反对。(/Users/aero/Downloads/m.coffee:11:17) 反对。(/Users/aero/Downloads/m.coffee:1:1) 在模块处编译(Module.js:456:26)
您的类定义不太正确。也就是说,您需要一个构造函数,并且需要使用Coffeescript 为什么这个咖啡脚本会出现以下错误 返回错误 TypeError:对象函数(){ 返回console.log(this.name); }没有方法“sayName” 反对。(/Users/aero/Downloads/m.coffee:11:17) 反对。(/Users/aero/Downloads/m.coffee:1:1) 在模块处编译(Module.js:456:26),coffeescript,Coffeescript,您的类定义不太正确。也就是说,您需要一个构造函数,并且需要使用:s,而不是像常规js那样使用=s 改为这样做: TypeError: Object function () { return console.log(this.name); } has no method 'sayName' at Object.<anonymous> (/Users/aero/Downloads/m.coffee:11:17) at Object.<anonymous&
:
s,而不是像常规js那样使用=
s
改为这样做:
TypeError: Object function () {
return console.log(this.name);
} has no method 'sayName'
at Object.<anonymous> (/Users/aero/Downloads/m.coffee:11:17)
at Object.<anonymous> (/Users/aero/Downloads/m.coffee:1:1)
at Module._compile (module.js:456:26)
用小提琴演示:
这里有一个很棒的关于咖啡脚本的课程,来自于咖啡脚本的小书,供你参考 我建议创建类时使用agconti answer,但这里我想回答出现此错误的原因 使用javascript编写构造函数时: 变量
someone
被分配给new关键字的返回对象
但如果构造函数返回一个函数:
function Person(name) {
this.name = name;
}
var someone = new Person('someone');
不幸的是,没有获得新创建的对象,而是将某人
分配给构造函数返回的函数
如果我们查看您的咖啡的编译代码:
我们看到构造函数返回一个函数。这是因为coffescript总是返回函数的最后一个表达式
您可以通过不返回任何内容来修复它:
啊,谢谢。我把这个直接从javascript翻译过来,作为学习coffeescript的一种方式。没问题!一个尝试的好地方是主coffeescript网站上的浏览器内解释器。感谢您提供详细的答案。
class Person
constructor: (@name, @age, @job) ->
sayName: ->
console.log(@name)
kim = new Person("Kimothy Lozado", 37, "Skip Tracer")
console.log kim.sayName()
function Person(name) {
this.name = name;
}
var someone = new Person('someone');
function Person(name) {
this.name = name;
return function(){};
}
var someone = new Person('someone');
Person = function(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
return this.sayName = function() {
return console.log(this.name);
};
};
Person = (name, age, job) ->
@name = name
@age = age
@job = job
@sayName = ->
console.log(@name)
return