关于JavaScript中this关键字的理解

关于this关键字的理解,可以用一句话概括:this指向的是当前函数所绑定的上下文对象。


1、在全局作用域中访问this,它指向的是window对象。

2、在一个函数里面访问this,如果函数默认被执行的情况下,它内部所访问的this仍然指的是window对象。

3、有一种情况在es6里面的严格模式下,函数在它默认被执行的情况下,它内部所访问的this是undefined。

4、在回调函数里面(默认被执行)像setTmeiut,setInterval这样的回调函数,它内部所访问的this指向的window。

5、如果通过一个对象的成员函数来进行访问的话,在它的内部,this指向的是当前这个对象。

6、除此之外,this可以通过其他方式来改变。比如在执行函数时使用call,apply函数执行时,所传递的第一个参数,就是指明 你在函数内部的this所访问到的上下文对象。

7、预先通过bind进行绑定。例如,在一个类的内部写了一个setTimeout,想要让setTimeout回调函数内部的this指向的是当前类的实例,可以在setTimeout里面传入的函数 绑定上下文对象就是当前类的实例,这样在它的内部所访问的对象就是当前类的实例。

8、针对上述情况es6中不用绑定,如果回调函数是箭头函数this就是指当前类的实例。

9、如果函数绑定了一个对象,又通过其他方式传了一个函数,this是指绑定的对象而不是传的对象,bind关键字的优先级高(都是指绑定的对象)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值