[英]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.