箭头函数里面如果是回调函数this指向
时间: 2023-07-12 16:04:42 浏览: 98
箭头函数里面的回调函数的this指向,取决于这个箭头函数被定义时的上下文,而不是执行时的上下文。如果箭头函数是在全局作用域下定义的,那么它里面的回调函数的this指向会是全局对象;如果箭头函数是在某个对象的方法中定义的,那么它里面的回调函数的this指向会是该对象;如果箭头函数是在某个函数中定义的,那么它里面的回调函数的this指向会是该函数的this指向。
相关问题
this在对象,window,普通函数,箭头函数,事件回调中的this指向
在对象中,this指向该对象本身;在window中,this指向全局对象;在普通函数中,this指向调用该函数的对象;在箭头函数中,this指向定义该箭头函数时的上下文;在事件回调中,this指向触发该事件的元素。
箭头函数改变this指向
箭头函数确实改变了this的指向。在普通函数中,this的值是在函数被调用时动态确定的,它指向调用该函数的对象。而在箭头函数中,this的值是在函数定义时确定的,它指向箭头函数所处的上下文。
具体来说,在箭头函数中,this指向的是定义箭头函数的词法作用域中的this值,而不是调用箭头函数时的对象。这意味着箭头函数没有自己的this绑定,并且无法使用call()、apply()和bind()等方法来改变this的值。
这种特性使得箭头函数特别适用于回调函数或需要保留外部this值的情况。同时,箭头函数也可以避免一些常见的this指向问题,比如在嵌套函数中使用this时导致this指向错误的情况。
需要注意的是,由于箭头函数没有自己的this绑定,所以在箭头函数内部使用this时,它会继续向上查找外部作用域中的this值,直到找到为止。如果没有找到符合条件的this值,则会返回undefined。
总之,箭头函数通过改变this的指向,解决了一些传统函数中的this指向问题,并且更加简洁和易于使用。
阅读全文