class Foo
foo: () ->
console.log("foo method Called")
class Bar extends Foo
constructor: () ->
console.log("Bar created")
bar: () ->
console.log("bar method called")
foo
b = new Bar
b.bar()
结果:
酒吧创造了
bar方法称为
ReferenceError:foo未定义
如何调用foo方法?
答案 0 :(得分:4)
这里有两个问题。
首先,您需要致电this.foo
(或@foo
)。
其次,在CoffeScript中,返回函数定义中提到的最后一个变量,而不是执行。因此,如果您想调用该函数,您的代码需要如下所示:
bar: () ->
console.log("bar method called")
this.foo() // or @foo()
否则没有()
它将返回函数而不是调用它。请注意,这也将编译为return this.foo()
,因此如果您不想返回任何内容,请在最后一行添加空白return
。
答案 1 :(得分:0)
使用@foo()
。在课堂上声明的functions
会添加到班级的prototype
中。看看代码here
要调用直接添加到函数原型的函数,您需要this
。