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

时间:2011-06-30 21:06:43

标签: javascript scope coffeescript

我有一个对象'foo',对象文字作为属性,如下所示。在该属性中,我想引用对象'foo'而不是对象文字本身。

这只能用黑客来完成,即通过变量名引用对象吗?或者有更好的方法吗?

下面的示例 - 应该在成功时打印'woo'。

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

window.foo = new Foo

foo.testthing.bop()

1 个答案:

答案 0 :(得分:3)

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

在这样的构造函数中声明testthing允许@myfunc绑定到'instance'而不是'class'。

您也可以使用'bop': @myfunc代替'bop': => @myfunc()传递任何参数:)