this的概念:
-
在js中,this是一个指针型变量,它动态指向当前函数的运行环境。
-
在不同的场景中调用同一个函数,this的指向也可能会发生变化,但是它永远指向其所在函数的真实调用者;如果没有调用者,就指向全局对象window
有以下六点:
1.单独使用 this,它指向全局(Global)对象。
2.在对象方法中, this 指向调用它所在方法的对象。
3.函数使用中,this 指向函数的所属者。
4.严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。
5.在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素。
6.apply 和 call 允许切换函数执行的上下文环境(context),即 this 绑定的对象,可以将 this 引用到任何对象。
一、全局环境下的this指向
在全局作用域下,this始终指向全局对象window,无论是否是严格模式!
二、函数内的this
三、对象中的this
对象内部方法的this指向调用这些方法的对象,也就是谁调用就指向谁
四、箭头函数中的this
箭头函数:this指向于函数作用域所用的对象。
五、构造函数中的this
构造函数中的this是指向实例。
六、原型链中的this
this这个值在一个继承机制中,仍然是指向它原本属于的对象,而不是从原型链上找到它时,它所属于的对象。
七、改变this指向的方法
相同点:
call、apply和bind都是JS函数的公有的内部方法,他们都是重置函数的this,改变函数的执行环节。
不同点:
bind是创建一个新的函数,而call和aplay是用来调用函数;
call和apply作用一样,只不过call为函数提供的参数是一个个地罗列出来,而apply为函数提供的参数是一个数组
————————————————
版权声明:本文为CSDN博主「XXXxxx光」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_55990909/article/details/124752030