繁体   English   中英

是否有可能在箭头函数和全局中获得这个?

[英]Is it possible to get the this inside an arrow function as well as the global this?

我有:

        checkbox.addEventListener('change', () => {
            console.log(this.checked)
        })

问题是由于箭头功能, this.checked是未定义的。 那我怎样才能检查复选框的值? 我知道我可以使用常规的function ,但我想保持this到外范围,因为我会调用一些功能,从它

击败箭头功能的目的。 使用事件对象获取对单击元素的引用。

checkbox.addEventListener('change', (event) => {
  console.log(event.target.checked)
})

并且您还将复选框定义为变量,以便您可以使用它

checkbox.addEventListener('change', (event) => {
  console.log(checkbox.checked)
})

我在使用这种类型的范围封装之前做过的事情是使用变量来保留“this”以供稍后参考。

var me = this;
checkbox.addEventListener('change', () => {
    console.log(me.checked)
})

使用这样的变量会导致大量的内存使用,因为你不断添加对最终应该被垃圾收集的东西的引用,所以要小心这样做太多。

并且始终可以选择获取/查找用于检查状态的正确元素。 从长远来看,这可能会占用更少的资源,并且不会显着影响应用的速度。

即使您需要使用不同的上下文来检查复选框/单选按钮的状态,您至少也能够找出“我”的上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM