为了账号安全,请及时绑定邮箱和手机立即绑定

**关于JavaScript中this指向问题**

标签:
JavaScript

关于JS中this指针
解析器在调用函数时每次都会向函数内部传递进隐含参数,这个隐含的参数就是this,this指向得到是一个对象,这个对象称为函数执行的上下文对象。

根据函数的调用方式的不同this会指向不同的对象
1.以函数的形式调用时 this指向全局对象window
2.以方法(obj.sayName())的形式调用时 this就是调用方法的那个对象
3.构造函数内部的this指向新创建的对象

    function fun(){
        console.log(this.name);
    }
    window.name = 'Lisa';
    fun();// Lisa

1
2
3
4
5
由上可以看出当用函数的形式调用时,this指向的是全局对象window,window可以省略

    var obj = {
        name:'孙悟空',
        sayName:function(){
            console.log(this.name);
        }
    }
    obj.sayName();// 孙悟空

1
2
3
4
5
6
7
当以对象的方法调用时发现this指向的是调用方法的对象

        function Person(name,age,gender){
            // this就是per
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.sayName = function(){
                alert(this.name);
            }
        }
        var per = new Person('孙悟空',19,'男');
        console.log(per);
1
2
3
4
5
6
7
8
9
10
11

从控制台输出内容可以看出this指向的构造函数新创建的对象per,即构造函数的实例
————————————————

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消