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>


浙公网安备 33010602011771号