【问题标题】:LiveScript class scope this self jquery issuesLiveScript 类范围这个自我 jquery 问题
【发布时间】:2013-11-11 19:37:46
【问题描述】:
class A
    () ->
    method: ->
    method2: ->
        $ 'a' .each ->
            href = $ @ .attr 'href'
            @method href

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

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

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

【问题讨论】:

    标签: livescript


    【解决方案1】:

    波浪箭头~> 可让您向下传递上下文,从而避免self = @

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

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

    【讨论】:

    • 没有意识到元素已通过。完美。
    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多