问题描述我们平时都用箭头函数来获得原来的this,但是反过来,如果js原生dom操作,比如onclick如果用箭头函数如何拿到它的this。问题出现的环境背景及自己尝试过哪些方法原生操作dom相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)不用箭头函数正确的做法for (let i = 0; i < iconPlus.length; i++) {
iconPlus[i].onclick = function () { //this指向正确
clickInitModal(this);
}
}用箭头函数的做法会找不到this问题如果用箭头函数 如何获取this?for (let i = 0; i < iconPlus.length; i++) {
iconPlus[i].onclick = function () { //this指向正确
clickInitModal(this);
}
}我期待的结果。如果用箭头函数 如何获取它的点击事件this
1 回答

狐的传说
TA贡献1804条经验 获得超3个赞
箭头函数并不是万能的。
因为用箭头函数去触发一个函数,当回调发生时,浏览器会用iconPlus[i]的上下文去调用这个函数,这时this的指向是window。
解决的办法,就是用回传统的函数表达式,这也并没有什么不好的。并不是新的模式出来,就一定要抛弃老的。
添加回答
举报
0/150
提交
取消