wtf是&#this&#在JavaScript中

javascript 中 this 的值取决于函数调用的方式,而非定义位置,这被称为“运行时绑定”。 这常常让开发者困惑。

wtf是&#this&#在JavaScript中

举例说明:

const user = {  name: "john",  greet() {    const sayhi = () => {      console.log(`hi, ${this.name}!`);    };    setTimeout(sayhi, 1000);  },};user.greet(); // 1秒后输出: "hi, john!"

箭头函数 sayhi 从其周围作用域继承 this。如果使用普通函数,this 将指向全局对象(或在严格模式下为 undefined),导致 this.name 未定义。

箭头函数的特殊之处在于它们没有自己的 this 绑定。它们继承父级作用域的 this

立即学习“Java免费学习笔记(深入)”;

const obj = {  value: 42,  getvalue: () => {    console.log(this.value);  },};obj.getvalue(); // undefined

即使 getvalueobj 的方法,箭头函数也不会从对象继承 this,而是从其定义位置(可能是全局或模块作用域)继承。

慧中标AI标书 慧中标AI标书

慧中标AI标书是一款AI智能辅助写标书工具。

慧中标AI标书 120 查看详情 慧中标AI标书

ECMAScript 规范中关于 this 绑定的规则:

构造函数函数 (使用 new 调用): this 指向新创建的对象。方法: this 指向拥有该方法的对象。箭头函数: this 继承自封闭作用域。普通函数调用: this 指向全局对象,或在严格模式下为 undefined

理解这些规则有助于预测不同情况下 this 的值。

实际应用示例:

class EventEmitter {  constructor() {    this.events = {};    this.emit = (event, ...args) => { // 使用箭头函数保持 this      const handlers = this.events[event] || [];      handlers.forEach((handler) => handler.apply(this, args));    };  }  on(event, handler) {    this.events[event] = this.events[event] || [];    this.events[event].push(handler);  }}const emitter = new EventEmitter();emitter.on("test", function() {  console.log(this === emitter); // true});emitter.emit("test");

此例中,emit 使用箭头函数确保 this 始终指向 EventEmitter 实例,而事件处理函数则通过 apply 方法绑定 this。 这并非魔法,而是 JavaScript 函数参数传递的特殊机制。

以上就是wtf是&#this&#在JavaScript中的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/370688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
最全面的Win10+Homestead环境搭建教程【图文】
上一篇 2025年11月6日 07:29:16
Yandex移动端推广指南:怎样用自适应广告占领手机流量?
下一篇 2025年11月6日 07:29:24

相关推荐

  • 价格比DDR5还贵 三星等大厂已无法回头:DDR4内存还得涨价至少2年

    10月13日消息,今年内存市场出现了一个罕见的价格倒挂现象:本应逐步退出市场的ddr4内存价格持续走高,甚至超过了更新一代的ddr5内存。 这一反常情况背后有多重原因。一方面,三星、SK海力士及美光三大原厂正加速向DDR5和HBM(高带宽存储器)等高利润产品转型,陆续缩减乃至计划停产DDR4产能,推…

    2026年9月22日
    300
  • VSCode如何调试JavaScript代码 VSCode调试功能的实战技巧

    要在vscode中调试javascript,首先需设置断点、配置launch.json文件、选择合适的调试环境并启动调试会话;2. launch.json至关重要,常见陷阱包括program路径错误、type类型不匹配、cwd设置不当、混淆launch与attach模式以及source map配置缺…

    2026年9月22日
    000
  • 2025上半年各大车企财报数据汇总 看看谁表现最出色?

    近日,多家中国汽车制造商陆续发布了2025年上半年的财务报告,数据显示行业内部差距进一步拉大,市场呈现明显的头部集聚效应。面对复杂的外部环境与激烈的竞争压力,部分企业通过提升产品竞争力和优化战略布局,实现了较为稳健的发展。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 Dee…

    2026年9月22日
    100
  • PHP匿名函数怎么用_PHP匿名函数使用场景分析

    PHP匿名函数是无名函数,可作为回调或赋值给变量,常用在数组处理、事件回调、逻辑封装等场景,支持use引入外部变量及fn短语法,结合bindTo可访问对象私有成员。 PHP匿名函数,也叫闭包函数(Closure),是一种没有名称的函数,通常作为回调使用或赋值给变量。它在实际开发中非常灵活,尤其适合用…

    2026年9月22日
    100
  • 极乐迪斯科兑换码有什么 极乐迪斯科最新2025兑换码大全

    极乐迪斯科2025最新可用兑换码包括:Disco888、REV2025、DRUG666、THOUGHTXP 和 PRIMEHARDCORE,这些礼包码可在游戏内商店直接使用,领取限定侦探外套、双倍经验卡及1000雷亚等丰厚奖励,数量有限,先到先得。 以上就是极乐迪斯科兑换码有什么 极乐迪斯科最新20…

    2026年9月22日
    000
  • 歧路旅人2兑换码是什么 八方旅人2最新2025兑换码大全

    歧路旅人2最新通用兑换码:qlyrdldbz2025、qdn4xkcndx、qllrdldbz等,可在游戏内商城直接使用,领取剑士黄金武器皮肤、双倍经验加成及1000叶币,奖励丰富限时有效,先到先得。 无限资源畅玩|游戏辅助工具: 2025年最新可用兑换码汇总如下: 1、兑换码: qlyrdldbz…

    2026年9月22日
    000
  • mysql如何输入变量值 mysql交互式代码输入步骤详解

    mysql如何输入变量值 mysql交互式代码输入步骤详解mysql如何输入变量值 mysql交互式代码输入步骤详解mysql如何输入变量值 mysql交互式代码输入步骤详解mysql如何输入变量值 mysql交互式代码输入步骤详解

    在mysql命令行中交互式输入变量值可通过预处理语句或用户自定义变量实现。1. 使用预处理语句时,先用prepare定义含占位符的sql语句,再通过set设置变量值,最后用execute执行并传参,完成后需deallocate释放资源;2. 使用用户自定义变量时,直接通过set赋值并在sql语句中引…

    2026年9月22日 用户投稿
    100
  • 牧场物语来吧风之繁华集市兑换码分享 牧场物兑换码分享

    《牧场物语:来吧!风之繁华集市》最新通用兑换码曝光:BOKUJO888、WIND2025、COW666 等,输入后可在游戏内邮箱领取丰厚奖励,包括限定奶牛皮肤、双倍经验卡以及1000G金币。操作方式为:领取成功后,进入游戏按X键打开背包,切换至邮件页面即可查收道具。 热门兑换码详情如下: BOKUJ…

    2026年9月22日
    500
  • Evernote如何设置智能文件夹 Evernote搜索语法的高级应用

    通过保存搜索实现智能文件夹,利用关键词组合、元数据过滤及通配符提升Evernote笔记检索效率,具体步骤包括创建高级搜索语法、保存搜索项、使用tag:、created:等属性筛选及filetype:附件类型查找。 如果您希望在Evernote中更高效地组织和查找笔记,但发现传统的笔记本分类难以满足复…

    2026年9月22日
    000
  • 明末渊虚之羽兑换码有什么 明末渊虚之羽最新兑换码2025

    明末渊虚之羽最新通用兑换码包括:ming888、yuan2025、feather666 等,可在游戏内商城直接使用,领取限定羽刃皮肤、双倍经验卡及1000灵石等丰厚奖励,限时有效,先到先得! 无限资源畅玩神器 | 游戏辅助工具: 2025年明末渊虚之羽最新兑换码汇总如下: MING888:可兑换限定…

    2026年9月22日
    200
  • 网易武侠MMO《射雕》官宣停运!IP合作期将结束

    网易旗下mmo大作《射雕》于今日正式发布停运通知,宣布游戏服务将于2025年11月24日15时全面终止。 据官方公告显示,此次停运主要由于《射雕三部曲》IP授权合作期限即将届满,同时结合网易整体游戏运营战略的调整所作出的决定。 游戏将依序推进以下停服安排: 2025年9月24日14时起:全渠道下载入…

    2026年9月22日
    000
  • 影目INMO获中国移动创新大奖,10.16发布会AI+AR生态要搞“大动作”?

    2025年中国移动全球合作伙伴大会在广州圆满落幕,影目科技作为智能眼镜领域的领军企业受邀出席,并荣膺“终端创新贡献合作伙伴”殊荣。作为中国移动在ai+ar终端生态中的关键战略伙伴,影目科技正携手中国移动共同推进ai智能眼镜在中国市场的规模化落地,助力打造“ai+万物互联”的智慧新生态。此次获奖恰逢影…

    2026年9月22日
    000
  • 在Java中如何格式化输出日期与时间

    推荐使用Java 8的DateTimeFormatter格式化日期时间,配合LocalDateTime或ZonedDateTime实现安全高效输出,如yyyy-MM-dd HH:mm:ss;2. 传统SimpleDateFormat非线程安全,适用于旧版本。 在Java中格式化输出日期与时间,常用的…

    2026年9月22日
    300
  • 史莱姆牧场2兑换码有什么 史莱姆牧场2最新2025兑换码

    史莱姆牧场2最新通用兑换码包括vip666、wvno80yb、bmh7pvak等,可在游戏内设置界面的兑换码选项中输入使用,领取彩虹史莱姆皮肤、双倍经验加成及1000新币奖励,道具限时领取,先到先得。 享受无限物品|游戏作弊器: 2025年最新可用兑换码如下: 1、vip6662、vip8883、l…

    2026年9月22日
    000
  • “双十一”预热开启 雷神科技多维发力抢占消费先机

    10月9日,一年一度的“双十一”购物狂欢正式开启。据公开信息显示,今年的启动时间相较去年提前了五天,创下历年“双十一”最早启动的新纪录。与此同时,促销方式也迎来显著转变——告别以往复杂的规则与套路,取而代之的是更为简洁直接的“官方直降”。让利更透明、体验更高效,已成为品牌打动消费者、抢占市场心智的核…

    2026年9月22日
    200
  • Docker的安装与卸载

    Docker的安装与卸载Docker的安装与卸载Docker的安装与卸载Docker的安装与卸载

    docker并不是一个通用的容器工具,它依赖于linux内核环境。实际上,docker是在运行的linux系统下创建一个隔离的文件环境,因此它的执行效率几乎与宿主环境相当。因此,在windows上部署docker需要先安装wsl子系统来提供linux环境,然后才能安装docker。 Docker由三…

    2026年9月22日 用户投稿
    100
  • 大麦网惹鹿晗粉丝“炸毛”,买张票咋就这么闹心?

    大麦网惹鹿晗粉丝“炸毛”,买张票咋就这么闹心?大麦网惹鹿晗粉丝“炸毛”,买张票咋就这么闹心?大麦网惹鹿晗粉丝“炸毛”,买张票咋就这么闹心?大麦网惹鹿晗粉丝“炸毛”,买张票咋就这么闹心?

    6月29日晚,许多网友在大麦平台上抢购鹿晗西安站演唱会门票时发现异常。原定18:07为优先权购票时间,19:07则为普通用户开放抢票。然而到了普通场次的抢票时段,平台依旧只开放了优先权通道,导致普通用户无法参与抢票。部分原本不打算在西安站使用优先权的用户,被迫提前动用了优先权资格,影响了后续其他场次…

    2026年9月22日 用户投稿
    000
  • 技术解析|象帝先与中移物联网合作:数字孪生全链路自主技术方案的突破

    据悉,中移物联网有限公司(简称中移物联网)携手国产gpu企业象帝先计算技术有限公司(简称象帝先),在2025年中国移动全球合作伙伴大会上,联合推出了首款全国产化数字孪生一体机。 该数字孪生一体机采用完全自主的硬件平台,搭载中移物联网自主研发的坤灵数字孪生平台软件。不仅在网页端渲染性能方面实现重大突破…

    2026年9月22日
    000
  • 小米17系列开售首日评论量超27万条 Max机型最高

    小米17系列开售首日评论量超27万条 Max机型最高小米17系列开售首日评论量超27万条 Max机型最高小米17系列开售首日评论量超27万条 Max机型最高小米17系列开售首日评论量超27万条 Max机型最高

    小米17系列 近日,有数码博主透露,小米17系列在正式发售首日于小米商城的用户评论数已突破27万条,相比去年小米15系列同期的22.5万条,同比增长显著,反映出新机上市后消费者的极高关注度。 从各机型表现来看,小米17 Pro Max成为绝对主力,评论数量突破12万条,占比接近总数的一半,充分展现了…

    2026年9月22日 用户投稿
    000
  • 华为:Pura 80 Ultra、Watch GT 6 Pro入选2025年度最佳发明

    10月25日消息,华为终端官微今日发布喜讯:pura 80 ultra与watch gt 6 pro成功入选《时代周刊》2025年度最佳发明榜单。 华为方面指出,Pura 80 Ultra凭借其在影像设计与技术创新方面的突破性表现,赢得权威认可。 WATCH GT 6 Pro则因出色的运动监测功能、…

    2026年9月22日
    000

发表回复

登录后才能评论
关注微信