class A
() ->
method: ->
method2: ->
$ 'a' .each ->
href = $ @ .attr 'href'
@method href
在我的jQuery函数中,我实际上需要两个范围,所以我不能只改变匿名函数的绑定方式。我可以放在method2 self = @
的开头,然后使用self.method
。我想永远使用self.method
。但我宁愿不把它放在每个功能的开头。
无论如何,在构造函数中设置self
始终存在并指向@
?我试过的一切都失败了。 self
始终未在方法中定义。
我把Coffeescript作为标签,因为它与LiveScript非常相似。
答案 0 :(得分:1)
波浪箭~>
可让您记下上下文,以避免self = @
:
method2: ->
$ \a .each (, el) ~>
href = $ el .attr \href
@method href
将回调中的jQuery元素作为参数传递,并继续使用波形箭头,以便上下文始终是实例。