this指向的简单理解

this
本身含义:执行上下文(只能是对象 不是对象强行转换成对象)
this一般存在于函数中,表示当前函数的执行上下文,如果函数没有被执行,那么this没有内容,只有函数在执行后this才有绑定。
函数执行的位置:
1、默认执行:
(自己执行自己)fn() (默认情况下的隐式执行) this指向window (严格模式下指向undefined,不指向)window

var arr = [1,2,3];
    function fn(){
        console.log(this)
    }
    fn();

2、通过对象执行:
(通过上下文对象执行,隐式执行,会发生隐式丢失):obj.fn()

3、显示执行:
(函数的方法执行)

//eg

 function fn(){
       console.log(this.a)
   }
    var a = 10;
    var obj = {
        a : 20,
        b : fn,
    }
    obj.b();//  返回值20;this指向的是fn引用的地址
//fn作为一个函数本身是一个对象,在内存中所占据的空间依然是一个地址,
//在用obj.b(),执行这个函数时执行的是一个引用,函数本身就是一个引用,
//当把fn复制给obj中的b时,复制的是一个引用地址=》浅拷贝,当我早使用obj.b()
//执行函数,用obj找到那个引用位置,这个时候,函数引用的位置被obj所找到,被obj
//执行,那么此时函数里的this就指向找到我位置的那个对象,也就是fn被哪个对象所
//执行,此时,fn就指向谁

this指向是调用当前函数的直接对象
显示执行:
(通过函数的方法执行)
指定的是谁this就指向谁,后天强制的,可以解决隐式丢失,找回丢失的this,使用显示执行强行绑定

//eg
function fn(){
    var f = fn.bind(window(写谁this就是谁));
}
f(); //此时就是window

构造函数执行 》》》》》》》》》》》》》》》》》
总结:谁执行了this所在的函数,this就是谁(重点)
(后天操作,就是改变了this的指向)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值