Javascript 引用类/实例而不是对象文字属性的正确方法?
我有一个对象“foo”,其属性为对象文字,如下所示。在该属性中,我希望引用对象“foo”,而不是对象文本本身 这只能通过hack来实现吗,即通过变量名引用对象?还是有更好的办法 下面的示例-应在成功时打印“woo”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
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')