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

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

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

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

4

1 回答 1

1

波浪形箭头~>可让您将上下文向下传递,这样您就可以避免self = @

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

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

于 2013-11-11T10:37:29.733 回答