LiveScript类范围这个自我jquery问题

时间:2013-11-09 17:56:03

标签: livescript

class A
    () ->
    method: ->
    method2: ->
        $ 'a' .each ->
            href = $ @ .attr 'href'
            @method href

在我的jQuery函数中,我实际上需要两个范围,所以我不能只改变匿名函数的绑定方式。我可以放在method2 self = @的开头,然后使用self.method。我想永远使用self.method。但我宁愿不把它放在每个功能的开头。

无论如何,在构造函数中设置self始终存在并指向@?我试过的一切都失败了。 self始终未在方法中定义。

我把Coffeescript作为标签,因为它与LiveScript非常相似。

1 个答案:

答案 0 :(得分:1)

波浪箭~>可让您记下上下文,以避免self = @

method2: ->
  $ \a .each (, el) ~>
    href = $ el .attr \href
    @method href

将回调中的jQuery元素作为参数传递,并继续使用波形箭头,以便上下文始终是实例。