【js系列】this的四种指向和三种改变方法
October 04, 2020
2818
this的四种指向和三种改变方法
一、this指针:
下面是MDN上关于this指针的表述:
当前执行上下文(global、function 或 eval)的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。—MDN
从字面上的意思,this也就是当前对象主体的一个代指。
二、this指针在JavaScript中的四种指向:
- 直接调用的情况下this指向window,即直接调用一个可以直接调用的函数,this指向window
- 通过new运算符,new这个函数,则this指向当前new出来的函数对象
- 通过创建一个对象,然后通过对象进行调用,this指向该对象(谁调用,指向谁)
- 箭头函数中没有this,箭头函数中的this指向的是上下文的this
1 |
|
三、通过bind, call, apply三种方式改变某函数的this指向
在JavaScript中有三个函数可以对bind, call, apply进行动态的改变:
区别:
- 执行形式上:
call和apply在使用后会立刻执行函数,而bind则只是绑定this对象,在之后才会调用
- 传入参数上:
call, bind, apply第一个传入参数是一致的,都是第一个参数为this要指向的对象,区别在于,call和bind后面的参数都是后续传参,而apply的第二个参数则必须是一个数组
- 箭头函数调用call或者apply方法的时候第一个参数会被忽略!(不能绑定this)
1 |
|
- 本文作者:AX
- 本文链接:http://xgpax.top/2020/10/04/this%E7%9A%84%E5%9B%9B%E7%A7%8D%E6%8C%87%E5%90%91%E5%92%8C%E4%B8%89%E7%A7%8D%E6%94%B9%E5%8F%98%E6%96%B9%E6%B3%95/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!