gpt4 book ai didi

coffeescript - 粗箭头 'this' 范围

转载 作者:行者123 更新时间:2023-12-04 05:24:17 24 4
gpt4 key购买 nike

考虑这段代码

 _bindEvents: ->
@input.bind 'keyup', =>
@filter($(this).val())
if $this .val() is ''
@clearBtn.hide()
else
@clearBtn.show()

我很清楚“@”代表“_this”。所以它引用父作用域,但是如果我需要“内部这个”怎么办。

像这一行:

@filter($(this).val())

编译成这样:

_this.filter($(_this).val()); // $(_this)

我需要这个:

_this.filter($(this).val());  // $(this)

有没有一种方法可以不使用细箭头并使用关闭 (that = this) 手动保存 this 引用来做到这一点?

最佳答案

据我所知,没有办法做到这一点;我会出于以下几个原因警告不要这样做:

  • 易于理解:当您使用哈希火箭 (=>) 时,您实际上是在告诉读者您需要/想要保留 this 的当前值;重新引入第二个 this 会混淆它。

  • future 兼容性:据我了解,下一个 ECMAScript 规范将支持 =>,甚至不会引入新的 这个。 (如果 CoffeeScript 直接采用新的该功能登陆时的箭头语法)

带有显式引用的细箭头最终可能会使事情变得更加清晰。

关于coffeescript - 粗箭头 'this' 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com