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

发布于 2024-11-18 08:24:48 字数 343 浏览 1 评论 0原文

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

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

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

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

window.foo = new Foo

foo.testthing.bop()

I have an object 'foo', with an object literal as a property, as shown below. Inside that property, I'd like to refer to the object 'foo' rather than the object literal itself.

Can this only be done with hacks, ie, referring to the object by its variable name? Or is there a better way?

Example below - should print 'woo' on success.

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

window.foo = new Foo

foo.testthing.bop()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故人的歌 2024-11-25 08:24:48
class Foo
  constructor: ->
    @testthing =
      'foo':'bar'
      'baz':'boo'
      'bop': => @myfunc()
  myfunc: =>
    console.log('woo')

像这样在构造函数中声明 testthing 允许将 @myfunc 绑定到“实例”而不是“类”。

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

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

Declaring testthing in the constructor like this allows @myfunc to be bound to the 'instance' rather than the 'class'.

You could also use 'bop': @myfunc instead of 'bop': => @myfunc() to pass along any arguments :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文