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>