箭头函数为什么没有自己的this
时间: 2023-10-25 10:09:17 浏览: 22
箭头函数没有自己的this,是因为箭头函数内部的this是继承自外层作用域的this。在箭头函数内部,this指向的是定义时所处的对象,而不是调用时所处的对象。这种继承机制使得箭头函数更加方便和简洁,因为它们不需要使用bind()、call()、apply()等方法来绑定this。但是,这也意味着箭头函数不能用作构造函数,因为它们没有自己的this。
相关问题
箭头函数中的this指向的什么
箭头函数中的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就指向全局对象(浏览器中是window对象,Node.js中是global对象)。
而在箭头函数中,this的值是在定义函数时确定的,它与函数的调用方式和上下文环境无关。箭头函数的this始终指向其定义时所在的作用域中的this,通常是包含箭头函数的函数的this。如果箭头函数是在全局作用域中定义的,那么this就指向全局对象。
因此,使用箭头函数可以避免this指向的意外变化,使代码更加可靠和易于维护。