在对象里写箭头函数为什么this不会指向对象
时间: 2024-06-10 19:10:57 浏览: 33
在对象里写箭头函数,this不会指向对象是因为箭头函数没有自己的this绑定,它的this指向它所在的词法作用域中的this。而在对象里写常规的函数,函数会创建自己的this绑定,this指向调用该函数的对象。因此,如果需要在对象内部使用箭头函数,可以使用外层作用域的this来访问对象的属性和方法。
相关问题
js箭头函数里的this指向哪里
在JavaScript的箭头函数中,this指向的是父级作用域的this,如果箭头函数没有父级作用域,那么this指向的是全局对象,即window对象。所以在箭头函数中,this的指向是固定的,无法通过调用方式或者上下文来改变。 箭头函数中的this指向与普通函数不同,普通函数中的this指向调用该函数的对象或者undefined(非严格模式下是window对象),而箭头函数中的this始终指向定义箭头函数时所在的作用域的this值,与调用方式无关。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [js箭头函数/函数this指向](https://blog.csdn.net/Canace_Xyxjjcaw/article/details/120753406)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [JavaScript里箭头函数的this指向问题](https://blog.csdn.net/weixin_55501516/article/details/129675677)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
JS-箭头函数中的this的指向
在箭头函数中,this的指向与普通函数有所不同。在箭头函数中,this的值由外层作用域决定,而不是由函数被调用的方式决定。这意味着箭头函数中的this指向的是定义时所在的对象,而不是调用时的对象。
具体来说,箭头函数不会创建自己的this值,而是会继承外层作用域中的this值。这种特性使得箭头函数在需要保持上下文一致性的场景中非常有用,尤其是在回调函数中使用。
下面是一个示例代码,展示了箭头函数中this的指向:
```
// 定义一个对象
const obj = {
name: 'C知道',
sayHello: function() {
// 普通函数
setTimeout(function() {
console.log('普通函数中的this:', this); // 指向全局对象(浏览器中为Window)
}, 100);
// 箭头函数
setTimeout(() => {
console.log('箭头函数中的this:', this); // 指向obj对象
}, 100);
}
};
// 调用对象的方法
obj.sayHello();
```
在上面的代码中,普通函数中的this指向全局对象(浏览器中为Window),而箭头函数中的this指向obj对象。这是因为箭头函数继承了外层作用域中的this值,而普通函数则根据调用方式决定this的值。
希望这个解答能够帮到你!如果你还有其他问题,请随时提问。