箭头函数的this值继承于哪里

news/2024/12/1 9:01:41/文章来源:https://www.cnblogs.com/ai888/p/18579450

箭头函数没有自己的 this 绑定。它们从词法上继承 this 值,这意味着它们从周围的(封闭的)函数或全局作用域继承 this

换句话说,箭头函数中的 this 指的是定义箭头函数时,在其外部函数this 的值。如果箭头函数不在任何函数内部,那么 this 将引用全局对象(在浏览器中是 window,在 Node.js 中是 global)。

让我们用几个例子来说明:

function outerFunction() {this.name = "Outer";const arrowFunction = () => {console.log(this.name); // 输出 "Outer"};arrowFunction();
}const outer = new outerFunction();const globalThis = this; // 全局 thisconst anotherArrowFunction = () => {console.log(this === globalThis); // 输出 true
};anotherArrowFunction();function regularFunction() {this.name = "Regular";const arrowFunctionInsideRegular = () => {console.log(this.name); // 输出 "Regular"};arrowFunctionInsideRegular();
}regularFunction();const obj = {name: "Object",method: function() {const arrowFunctionInsideMethod = () => {console.log(this.name); // 输出 "Object"};arrowFunctionInsideMethod();}
};obj.method();

在这些例子中,箭头函数内部的 this 总是指向定义箭头函数时,外部作用域中的 this。这与普通函数不同,普通函数的 this 值取决于函数的调用方式(例如,使用 new 关键字、callapply 或直接调用)。

因此,记住关键点:箭头函数不绑定自己的 this,而是从其词法作用域继承 this 这使得箭头函数在处理回调函数、事件处理程序和其他需要访问外部作用域 this 的场景中非常有用,避免了 this 指向错误的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/844414.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 学期2024-2025-1 学号20241405《计算机基础与程序设计》第10周学习总结

作业信息 |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP| |这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10| |这个作业的目标|1、信息系统 2、数据库与SQL 3、人工智能与专家系统 4、人工神经网络 5、模拟与离散事…

2024年11月总结及随笔之献血和球赛安检

随笔及总结1. 回头看 日更坚持了700天。读《数据工程之道:设计和构建健壮的数据系统》更新完成 读《数据质量管理:数据可靠性与数据质量问题解决之道》开更并持续更新2023年至2024年11月底累计码字1738120字,累计日均码字2483字。 2024年11月码字95323字,同比上升38.38%,环…

电脑和网络联网故障检测排查流程-2024-12-01

电脑和网络联网故障检测排查流程-2024-12-01 https://www.autoahk.com/archives/51704https://www.cnblogs.com/delphixx/p/18579399电脑和网络联网故障检测排查流程序号 故障现象 电脑和网络联网故障排查修复操作 备注1 电脑重新启动后无法全自动清理病毒木马垃圾文件并全自动…

使用canvas生成一张分享图

// 创建canvas元素 const canvas = document.createElement(canvas); canvas.width = 600; // 设置宽度 canvas.height = 400; // 设置高度 document.body.appendChild(canvas); // 将canvas添加到页面const ctx = canvas.getContext(2d);// 绘制背景 ctx.fillStyle = #f0f0f0;…

安卓的公式编辑器MathMagic

物体运动轨迹方程(考虑空气阻力)

UniDepth:通用单目度量深度估计

UniDepth:通用单目度量深度估计精确的单目度量深度估计(MMDE)对于解决3D感知和建模中的下游任务至关重要。然而,最近MMDE方法的显著准确性与其训练领域不符。即使存在适度的域间隙,这些方法也无法推广到看不见的域,这阻碍了它们的实际应用。提出了一种新的模型UniDepth,…

写一句话:NOIP之后,没有完结的故事与青春

睡觉睡觉,一切都好。睡觉最好。可能是两句话? 周五和助教一起吃饭,她说:不要老是说自己退役了。以后还有各种比赛,上了大学还有 acm。路还很长。 这两天和宁老师一起行动,宁老师真的是很可爱的很好的老师(如果 N 老师您看到了,那我想说的是老师特别幽默有趣,谢谢老师^…

写一句话:没有完结的故事与青春

睡觉睡觉,一切都好。睡觉最好。可能是两句话? 周五和助教一起吃饭,她说:不要老是说自己退役了。以后还有各种比赛,上了大学还有 acm。路还很长。 这两天和宁老师一起行动,宁老师真的是很可爱的很好的老师(如果 N 老师您看到了,那我想说的是老师特别幽默,谢谢老师^^)。…

攻防世界-不仅仅是RSA

一、题目 给出以下几个文件py文件代码如下二、解题思路 1、听C1,C2的音频, 由长短声很快确定是摩斯密码,上网一搜,果然有在线摩斯密码音频解密网站,上去解密即可这里初步判断可能是密文 2、进一步分析代码分析代码发现这就是一个简单的RSA加密算法,并且有两个不同公钥的RSA…

Web自动化001-Web自动化前端基础及Selenium原理和环境搭建

Web自动化001-Web自动化前端基础及Selenium原理和环境搭建 Web自动化前端基础及Selenium原理和环境搭建1.什么是web自动化测试?web自动化测试是指利用自动化的测试工具或者框架,通过编写脚本和模拟用户在web页面上的任意操作web自动化测试是一种比较高效,准确、可重复测试的…

道路缺陷智能检测系统

道路缺陷智能检测系统的核心是基于YOLOX算法结合OpenCV, 道路缺陷智能检测系统能够通过无人机或车载相机捕获的道路图像,准确识别出路面的各类病害。无论是细微的龟裂还是明显的坑洞,系统都能迅速发现并标记出来。通过深度学习技术,系统能够学习并识别病害的特征,随着数据…

皮带输送机空载识别检测系统

皮带输送机空载识别检测系统核心在于通过现场监控摄像机,皮带输送机空载识别检测系统实时监测皮带输送机上是否有物料。系统的工作原理是首先利用YOLOvX算法对摄像机捕获的图像进行处理,识别出图像中的物料。然后,通过设定的阈值来判断物料是否存在。当监控画面中没有物料存…