CoffeeScript实例方法
我有一个像这样定义的CoffeeScipt类CoffeeScript实例方法,coffeescript,instance-methods,Coffeescript,Instance Methods,我有一个像这样定义的CoffeeScipt类 class Foo a: 1 b: 2 main: -> if a == 1 log(1) log: (num) -> console.log(num) f = new Foo f.main() 它不断出错,说日志没有定义。我试着让它@log:也不起作用。我试着使主a的=>成为->,但也没有成功。如何从类本身内部调用实例方法?在调用实例方法和字段时使用@,而不是在定义: class Foo a
class Foo
a: 1
b: 2
main: ->
if a == 1
log(1)
log: (num) ->
console.log(num)
f = new Foo
f.main()
它不断出错,说日志没有定义。我试着让它
@log:
也不起作用。我试着使主a的=>
成为->
,但也没有成功。如何从类本身内部调用实例方法?在调用实例方法和字段时使用@
,而不是在定义:
class Foo
a: 1
b: 2
main: ->
if @a == 1
@log(1)
log: (num) ->
console.log(num)
f = new Foo()
f.main()
像这样用@
定义方法
@log: (num) ->
console.log(num)
使它们保持静态。在CoffeeScript上开发时,请查看已编译的JS。这加上使用
new
关键字,您应该进行设置f=new Foo()
并将if a==1
重写为if Foo::a==1
,因为a
也在原型中。很抱歉,我省略了new
关键字,因为它在原始源代码中。这似乎奏效了。谢谢