JS学习之this指向问题

405 阅读1分钟

最近在牛客网上做题目,总是做错很多很细致的题目,一度觉得是题目考的太细了,其实还是自己了解的程度不够深刻,理解的不够透彻,所以决定从头学习JS重点,分块级记录学习过程,只求让自己能够学的有条理,能够细致起来。

相信大家在做题目或项目的时候,经常被这个this搞得头昏脑涨,我也是= =,所以为了让它不再迷惑我们,认认真真的来学习一下它吧。

this指向

首先我们要知道,this指向在定义的时候,完全不知道它指向谁,只有在实际调用的时候才能知道它到底指向谁。

先来看个栗子吧!

    function a (){
        var user = '狗蛋';
        console.log(this.user); //undefined
        console.log(this); //window
    };
    a ();

a作为函数,它的this是指向window的,所以window.user自然是找不到的。 再看第二个小栗子!

    function b () {
        user: '二狗';
        c: function () {
            console.log(this.user); //二狗
        }
    }

这个时候的函数C,就是出于b 的作用域中,所以c的this指向b,