this的指向

本文详细探讨了JavaScript中this的指向问题,包括全局范围、构造函数、对象方法、普通函数和箭头函数内的不同行为。特别指出在浏览器环境中,未绑定到对象的函数this通常指向window。此外,还介绍了this的运行时绑定原则,以及默认绑定、隐式绑定和丢失绑定的情况。文章强调了this的绑定取决于函数调用方式,而非定义位置,并提醒注意严格模式对this的影响。

:this的指向:

This在全局范围内

This在对象的构造函数内

This在对象的方法内

This在一个简单的函数内

This在剪头函数内

This再一个时间侦听器内

当时用new关键字床照函数的实例

创建一个空对象

将构造函数的作用域赋给新的对象(This

指向了这个新对象)

.执行构造函数中的代码

.返回新对象

需要注意在浏览器中不管函数声明在那里,匿名或者不匿名,只要不是直接作为对象的方法,This指向始终是window对象(除非使用call,apply,bind修改This指向)

This绑定的规则:

This不是便携式绑定,而是运行时绑定。它依赖于函数调用的上下文条件。This绑定和函数生命的位置无关,但是和函数被调用的方式有关。

This实际上是在函数被调用时建立的一个绑定,他只想什么是完全由函数被调用的调用点来决定的。

..默认绑定规则:

独立的函数调用。可以认为This在这中规则是没有其他规则适用时的默认规则。

隐式绑定规则:

当一个方法引用存在一个环境对象时,隐式绑定,规则会说:是这个对象应当与这个函数调用的This绑定

隐式绑定有一个隐患当一个隐含绑定丢失了他的绑定,意味着他会退回到默认绑定,根据strict mode的状态,结果不是全局对象就是undefined

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值