:this的指向:
This在全局范围内
This在对象的构造函数内
This在对象的方法内
This在一个简单的函数内
This在剪头函数内
This再一个时间侦听器内
当时用new关键字床照函数的实例
创建一个空对象
将构造函数的作用域赋给新的对象(This
指向了这个新对象)
.执行构造函数中的代码
.返回新对象
需要注意在浏览器中不管函数声明在那里,匿名或者不匿名,只要不是直接作为对象的方法,This指向始终是window对象(除非使用call,apply,bind修改This指向)
This绑定的规则:
This不是便携式绑定,而是运行时绑定。它依赖于函数调用的上下文条件。This绑定和函数生命的位置无关,但是和函数被调用的方式有关。
This实际上是在函数被调用时建立的一个绑定,他只想什么是完全由函数被调用的调用点来决定的。
..默认绑定规则:
独立的函数调用。可以认为This在这中规则是没有其他规则适用时的默认规则。
隐式绑定规则:
当一个方法引用存在一个环境对象时,隐式绑定,规则会说:是这个对象应当与这个函数调用的This绑定
隐式绑定有一个隐患当一个隐含绑定丢失了他的绑定,意味着他会退回到默认绑定,根据strict mode的状态,结果不是全局对象就是undefined
本文详细探讨了JavaScript中this的指向问题,包括全局范围、构造函数、对象方法、普通函数和箭头函数内的不同行为。特别指出在浏览器环境中,未绑定到对象的函数this通常指向window。此外,还介绍了this的运行时绑定原则,以及默认绑定、隐式绑定和丢失绑定的情况。文章强调了this的绑定取决于函数调用方式,而非定义位置,并提醒注意严格模式对this的影响。
1784

被折叠的 条评论
为什么被折叠?



