wjg123qwe 2021-10-07 21:03 采纳率: 87.5%
浏览 34
已结题

关于#javascript#的问题:为什么用for of就可以打印出内容


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <button>按钮1</button>
        <button>按钮2</button>
        <script>
            let obj={
                site:"中华人民共和国",
                handleEvent:function(event){
                    console.log(this.site+event.target.innerHTML);
                },
                show:function(){
                    const _this=this;
                    const button=document.querySelectorAll("button");
                    for (const but of button) {
                        but.addEventListener("click",this);
                    }
                }
            }
            obj.show();
        </script>
    </body>
</html>

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/502626116336175.png "=600 #left")


<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <button>按钮1</button>
        <button>按钮2</button>
        <script>
            let obj={
                site:"中华人民共和国",
                handleEvent:function(event){
                    console.log(this.site+event.target.innerHTML);
                },
                show:function(){
                    const _this=this;
                    const button=document.querySelectorAll("button");
                    button.forEach(function(elem){
                        elem.addEventListener("click",this);
                    })
                }
            }
            obj.show();
        </script>
    </body>
</html>

img


为什么用for of就可以打印出内容,foreach就不行呢?

  • 写回答

1条回答 默认 最新

  • 永远不会太晚 2021-10-07 23:36
    关注
    button.forEach(elem=>{
                            elem.addEventListener("click",this);
                        })
    

    这样就行了,因为你的写法forEach里是个function(elem){......},function中this指向function本身,可以使用箭头函数,箭头函数中的this指向上一级

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月8日
  • 已采纳回答 10月8日
  • 创建了问题 10月7日

悬赏问题

  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名