JavaScript中this指向

罗建波 2022-10-28 19:00:05

 

📗目录

 

        1.普通函数调用时

        2.方法调用时

        3.作为构造函数调用时

        4.作为事件绑定时的处理函数

        5.作为定时器中的处理函数

        6.总结


 

this指向就一句话:谁最终调用函数,this指向谁!!!

🌕1.普通函数调用时:this指向window

  //通过函数名()直接调用:this指向window
function f(){
        console.log(this);
    }
f();

🌕2.方法调用时:this指向调用此方法的对象

function func(){
            console.log(this);
        }

//通过对象.函数名()调用的:this指向这个对象
            var obj = {
                name:"obj",
                func1 :func
            };
            obj.func1(); // this--->obj
            

🌕3.作为构造函数调用时:this指向此构造函数创建的对象

function func(){
            console.log(this);
        }

//⑤ 函数作为构造函数,用new关键字调用时:this指向新new出的对象
        var obj = new func(); //this--->new出的新obj

 🌕4.作为事件绑定时的处理函数:this指向绑定该事件的对象

btn.onclick = function(){
        console.log(this);
}

 🌕5.作为定时器中的处理函数:this指向window

setInterval(function(){
        console.log(this);
},200);

🌕6.总结

  • 全局作用域下的this指向window

  • 如果给元素的事件行为绑定函数,那么函数中的this指向当前被绑定的那个元素
  • 函数中的this,要看函数执行前有没有 . , 有 . 的话,点前面是谁,this就指向谁,如果没有点,指向window
  • 自执行函数中的this永远指向window
  • 定时器中函数的this指向window
  • 构造函数中的this指向当前的实例
  • call、apply、bind可以改变函数的this指向
  • 箭头函数中没有this,如果输出this,就会输出箭头函数定义时所在的作用域中的this

 

上述问题中其实就是this的指向问题,this指向明白了自然就清楚了 

...全文
598 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-编程语言 发布问题, 以便更快地解决您的疑问

11

社区成员

发帖
与我相关
我的任务
社区描述
欢迎大家分享自己的成长心得
大数据前端后端 高校 重庆
社区管理员
  • c_university_2082
  • 菠萝_
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧