this指向面试题

this指向与函数所在的执行上下文有关,指向函数的调用者。在window下调用函数就指向window,在对象终调用函数就指向对应的对象。

一个小习题可以帮助理解

  <script>
        // var num = 10;
        let num =10//let 定义不会变量提升,不会变成window下的属性,24行运行结果就是undefined,var定义会将变量提升为window的属性,24行打印就是10
        let obj = {
            num: 20,
            run: function () {
                console.log(this.num);
                // this.num = 30;
            },
        };
        obj.run();//this是obj
        let {run} = obj;
        run()//this是window
        console.log(num);//打印的是window下的num
        console.log(obj.num);
    </script>

  

 

posted @ 2022-09-30 16:29  SadicZhou  阅读(40)  评论(0编辑  收藏  举报