js的this指向问题

2020-01-13  本文已影响0人  鸡毛菜菜子

this指向详情参考:https://blog.csdn.net/weixin_37722222/article/details/81625826

apply和call详情参考:https://www.jianshu.com/p/bc541afad6ee

1.基本函数的指向

在非严格模式下指向window,在严格模式下无所指向。

2.对象字面量函数指向

就是那个函数调用,this指向哪里

3.构造函数指向

指向使用new构造方法构造出来的函数

4.箭头函数对this指向的改变

箭头函数没有 this ,箭头函数里面的 this 是继承外面的环境。

使用箭头函数之前 使用箭头函数之后

注意在事件中使用箭头函数结果不是我们想要的,事件函数可以理解为为对象onclick设置值,所以函数声明时this为当前对象,但使用箭头函数时this为声明函数上下文。使用handleEvent绑定事件处理器时,this指向当前对象而不是DOM元素。

5.apply与call的使用

call 和 apply 的作用,完全一样,唯一的区别就是在参数上面。

call 接收的参数不固定,第一个参数是函数体内 this 的指向,第二个参数以下是依次传入的参数。

apply接收两个参数,第一个参数也是函数体内 this 的指向。第二个参数是一个集合对象(数组或者类数组)

可以看到,obj 是作为函数上下文的对象,函数 getName 中 this 指向了 obj 这个对象。参数 firstName 和 lastName 是放在数组中传入 getName 函数。

call和apply可用来借用别的对象的方法,这里以call()为例:

call和apply可用来借用别的对象的方法,这里以call()为例:

上一篇 下一篇

猜你喜欢

热点阅读