this指向

本文详细探讨了JavaScript中this的指向问题,包括全局环境、普通函数、回调函数、事件处理、对象方法、箭头函数以及call、apply和bind方法中的this指向规则。总结了不同场景下this的确定方式,帮助理解JavaScript中的上下文绑定。
摘要由CSDN通过智能技术生成

this指向

  1. 全局this 指向window
console.log(this); 
  1. 普通函数中this 非严格模式下指向window,严格模式下指向undefined

    function fn(){
          
        console.log(this); 
    } 
    fn();// window || undefined 
    
    
    
    var obj={
          
        a:function(){
          
            function fn1(){
          
                console.log(this) 
            } 
            fn1(); 
        } 
    } 
    obj.a();// window || undefined 
    
    
    document.addEventListener("click",clickHandler); 
    function clickHandler(e){
          
    
        function fn2(){
          
            console.log(this);// window || undefined 
        } 
        fn2(); 
    } 
    
  2. 回调函数中的this

    1)普通回调函数非严格模式时,this指向window,严格模式时this执行undefined

    function fn(f){
          
       f(); 
    } 
    function fn1(){
          
        console.log(this)// window || undefined 
    } 
    fn(fn1); 
    
    
    var o={
          
        init:function(){
          
            // setTimeout(function(){ 
    
            //     console.log(this)// window || undefined 
    
            // },1000) 
            [1,2,3].forEach(function(item){
          
                console.log(this);// window || undefined 
            }) 
        } 
    } 
    o.init(); 
    

    (2)在使用回调函数时,利用argumentsn这样的方式执行了回调后,回调函数中this指向调用该回调函数上下文环境函数中arguments

     
    
    function fn(f){
         
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值