JS中this的指向问题

博主前段时间准备软考,结束后做了“小鸟游戏”,在过程中总结出重要知识点——this的指向。包括元素绑定事件、方法名前有无点、构造函数执行、箭头函数、全局作用域或普通函数等不同情况下this的指向,并将通过例题帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5月的最后一天,想想又有好久没有更过博客啦~

前段时间在准备软考,不管结果怎样,也是结束了。也算是自己对大学知识的一个总结吧~

自打25号考完试,做了一个小游戏“小鸟游戏”,做的过程中我发现了一个很重要的知识点——this的指向

经过查资料看视频,总结如下:

  1. 元素绑定事件,方法中的this是当前操作的元素
  2. 看方法名前有点。有点,点前边是谁this就是谁;没有点,this指window(严格模式下是undefined)
  3. 构造函数执行,方法体中的this是当前类的一个实例
  4.  箭头函数中指向外层作用域的 this
    全局作用域或者普通函数中 this 指向全局对象 window
  5. this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的

看下边俩道例题来理解:

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>this的指向</title>
    <script>
        var fullName='language';
        var obj={
            fullName:'javascript',
            prop:{
                getFullName:function(){
                    return this.fullName;
                }
            }
        };
        console.log(obj.prop.getFullName());
        //有点,this:obj.prop => obj.prop.fullName => undefined
        var test=obj.prop.getFullName;
        console.log(test());
        // 没有点,this:window => this.fullName => window.fullName => language
    </script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>this练习题</title>
    <script>
        var name='window';
        var Tom={
            name:'Tom',
            show:function(){
                console.log(this.name);//=>window.name=>window
            },
            wait:function(){
                var fun=this.show;//=> Tom.show
                fun();//没有点,this指window
            }
        };
        Tom.wait();
        // 有点,this指Tom 
    </script>
</head>
<body>
    
</body>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值