【Javascript】深入理解this作用域问题以及new/let/var/const对this作用域的影响

本文深入探讨JavaScript中的this作用域问题,解释new运算符、let/var/const如何影响this的指向。通过实例分析,展示了在不同执行环境下,this的指向如何确定,并强调箭头函数的特殊性。同时,推荐了相关知识点的文章以帮助深化理解。
摘要由CSDN通过智能技术生成

理解this作用域

《javascript高级程序设计》中有说到:

this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window ,而当函数被作为某个对象调用时,this等于那个对象。不过,匿名函数具有全局性,因此this对象同常指向window

不过,在全局函数中,this等于window,匿名函数具有全局性,因此this对象通常指向window,针对于匿名函数this具有全局性的观点仍是有争议的,可参考 https://www.zhihu.com/question/21958425

this的指向取决于函数(不包含箭头函数)执行时的环境

验证过程如下:

关于闭包经常会看到这么一道题:

var name = "The Window";
    var object = {
   
        name : "My Object",
        getNameFunc : function(){
   
            return function(){
   
                return this.name;
            };
        }
    };
console.log(object.getNameFunc()());//result:The Window


在这里,getNameFunc return了1个匿名函数,可能你会认为这就是输出值为The Window的原因

但是,我们再来尝试写1个匿名函数

var name = "The Window";
 var object = {
   
  name : "My Object",
  getNameFunc : function(){
   
   return this.funAA;
  },
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值