箭头函数中的this指向的什么
时间: 2023-09-13 22:13:18 浏览: 98
箭头函数中的this指向的是函数定义时所在的作用域,而不是指向运行时所在的作用域。\[1\]这与普通函数中的this指向是不同的。在普通函数中,this的指向是可变的,可以根据函数的调用方式和上下文来确定。但是在箭头函数中,this的指向是固定的,会绑定到定义时所在的作用域。\[1\]这意味着无论箭头函数在哪里被调用,它的this都会指向定义时所在的作用域,而不会受到调用方式的影响。这也是为什么在回调函数中使用箭头函数时,不需要进行this的固定,因为箭头函数会继承外层函数调用的this。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [ES6中箭头函数的this指向](https://blog.csdn.net/weixin_43739375/article/details/88600586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
箭头函数的this指向
箭头函数的this指向是继承而来的,默认指向在定义它时所处的对象(宿主对象),即父级作用域,而不是执行时的对象。这意味着箭头函数中的this是固定的,无法通过调用方式来改变。在箭头函数中,this的值是在定义时确定的,而不是在执行时确定的。因此,箭头函数中的this指向的是上一层作用域的this,而不是函数被调用时的对象。[1] [2] [3]
箭头函数改变this指向
箭头函数确实改变了this的指向。在普通函数中,this的值是在函数被调用时动态确定的,它指向调用该函数的对象。而在箭头函数中,this的值是在函数定义时确定的,它指向箭头函数所处的上下文。
具体来说,在箭头函数中,this指向的是定义箭头函数的词法作用域中的this值,而不是调用箭头函数时的对象。这意味着箭头函数没有自己的this绑定,并且无法使用call()、apply()和bind()等方法来改变this的值。
这种特性使得箭头函数特别适用于回调函数或需要保留外部this值的情况。同时,箭头函数也可以避免一些常见的this指向问题,比如在嵌套函数中使用this时导致this指向错误的情况。
需要注意的是,由于箭头函数没有自己的this绑定,所以在箭头函数内部使用this时,它会继续向上查找外部作用域中的this值,直到找到为止。如果没有找到符合条件的this值,则会返回undefined。
总之,箭头函数通过改变this的指向,解决了一些传统函数中的this指向问题,并且更加简洁和易于使用。
阅读全文