Javascript 引用类/实例而不是对象文字属性的正确方法?

Javascript 引用类/实例而不是对象文字属性的正确方法?,javascript,scope,coffeescript,Javascript,Scope,Coffeescript,我有一个对象“foo”,其属性为对象文字,如下所示。在该属性中,我希望引用对象“foo”,而不是对象文本本身 这只能通过hack来实现吗,即通过变量名引用对象?还是有更好的办法 下面的示例-应在成功时打印“woo” class Foo myfunc: => console.log('woo') testthing: { 'foo':'bar' 'baz':'boo' 'bop': => @myfunc() } window.f

我有一个对象“foo”,其属性为对象文字,如下所示。在该属性中,我希望引用对象“foo”,而不是对象文本本身

这只能通过hack来实现吗,即通过变量名引用对象?还是有更好的办法

下面的示例-应在成功时打印“woo”

class Foo
  myfunc: =>
    console.log('woo')
  testthing: {
    'foo':'bar'
    'baz':'boo'
    'bop': =>
      @myfunc()
  }

window.foo = new Foo

foo.testthing.bop()
像这样在构造函数中声明
testthing
,可以将
@myfunc
绑定到“实例”而不是“类”


您还可以使用
'bop':@myfunc
而不是
'bop':=>@myfunc()
来传递任何参数:)

。只是想澄清一下:在类主体中,
@
指向
Foo
。在构造函数中,它指向正在创建的
Foo
实例。
class Foo
  constructor: ->
    @testthing =
      'foo':'bar'
      'baz':'boo'
      'bop': => @myfunc()
  myfunc: =>
    console.log('woo')