首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该放什么来替换错误的"this“上下文?

当我们遇到错误的"this"上下文时,我们需要根据具体的情况来决定替换的内容。以下是几种常见的替换方式:

  1. 使用箭头函数: 箭头函数不会绑定自己的"this"上下文,而是继承了外部作用域的"this"值。因此,可以使用箭头函数来替代错误的"this"上下文。 示例代码:
代码语言:txt
复制
const obj = {
  name: 'John',
  sayHello: function() {
    const innerFunc = () => {
      console.log(`Hello, ${this.name}!`);
    };
    innerFunc();
  }
};
obj.sayHello(); // Output: Hello, John!
  1. 使用bind()方法: 可以使用bind()方法来明确指定函数的"this"上下文。bind()方法创建了一个新的函数,其中的"this"值被永久绑定到了指定的对象。 示例代码:
代码语言:txt
复制
const obj1 = {
  name: 'John',
  sayHello: function() {
    function innerFunc() {
      console.log(`Hello, ${this.name}!`);
    }
    const boundFunc = innerFunc.bind(obj1);
    boundFunc();
  }
};
obj1.sayHello(); // Output: Hello, John!
  1. 使用call()或apply()方法: 可以使用call()或apply()方法临时改变函数的"this"上下文,并立即执行该函数。call()方法接受参数列表,而apply()方法接受一个包含参数的数组。 示例代码:
代码语言:txt
复制
const obj2 = {
  name: 'John',
  sayHello: function() {
    function innerFunc() {
      console.log(`Hello, ${this.name}!`);
    }
    innerFunc.call(obj2);
  }
};
obj2.sayHello(); // Output: Hello, John!

以上是几种常见的替换错误的"this"上下文的方式。根据具体情况选择合适的方法来解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

我应该拿什么来拯救你,我的游戏?

过程中大家也积极讨论了一些防破解的方法,在征得到大家的同意后,我将讨论的方案整理了出来,希望对正在做小游戏的开发者们有所帮助或启发,如果你有更好的方案也欢迎留言讨论。...发布 Release 构建时,对生成的关键图片资源、JS代码等生成 MD5 指纹,替换到构建资源中。...3 彩蛋 ”彩蛋“方案是一位伙伴想起曾经莉莉丝的《刀塔传奇》反编译案提出来的,看下图: ?...在《Heroes Charge》的游戏中出现了《刀塔传奇》开发商莉莉丝游戏的商标,这显然并不正常。 彩蛋是不得已的最后一手,当我们的游戏发现已经被盗时,向平台提出申诉,彩蛋将是一个重要的申述证据。...游戏被盗,作为个人是很难与一些不良公司抗衡的,更重要的是它会极大地打击我们学习和创作的动力。上面介绍了三种保护游戏的方案,抛砖引玉,相信大家还有更多更好的方法,欢迎大家留言讨论或来公众号分享你的经验。

1.2K20

架构分四层,我的代码应该放哪一层

我们的应用工程结构,常见大致分为四层。分别是api层、biz层、domain层和dao层。 要想清楚我们的代码应该放在那一层,先让我们一起熟悉这四层的职责。...可以看出来,它的特点是主内。是一种“向内”表达。这也是区别api层的地方,虽然有时候api层和biz层是1:1的关系,当然有时候也会有M:N的情况。但是,它的职责定位跟api完全不同。...特点:也要灵活、薄,另外要可以根据特定场景进行编写独立的biz类。 api层是不是冗余?文中的个人观点:不冗余。 api层并不冗余,虽然常见较薄,依然尤其独立的职责。...共用的逻辑在这层,但也可以通过SPI的形式去兼容个性化的业务逻辑,比如不同业务模式下,运费的模版不同,那么可以把这些个性的逻辑通过SPI扩展出去。...四、dao层 dao层,也就是我们的存储层了,负责持久化。 特点:也要灵活,能够随着不同DB之间的差异、以及性能的要求,独立dao的方法。 问题1:我们大量的代码应该放在哪层?

1.1K30
  • 我到底应该使用哪个 CRI 替换 kubernetes 集群的 Docker?

    下面是我已经测试的几个 CRI,并进行一些基准测试来对他们进行了简单的对比,希望对你有所帮助: dockershim containerd crio 对于 cri-o,已经测试了2个后端:runc 和...性能上的差异在真正的集群上又有什么意义吗?...containerd 在所有指标上的表现都比较好,应该是最均衡的一个选择了。另外一方面,docker 并没有得到很好的测试结果,但是无论负载情况如何,它的表现基本上都是一致的。...总结 从纯性能角度来说,确实有比 docker 更好的替代品,我们的集群也不会替换 docker 产生什么影响。...在我看来,docker 仍然是让整个容器化向前发展的一个伟大工具。但是好像我还没有回答我最初的问题,那就是:我应该为我的k8s集群使用什么CRI?

    3.2K20

    .NET牛人应该知道些什么,我的回答

    .NET牛人应该知道些什么 前些日子我发了一份ASP.NET面试题 清单. 有一些访客比较保守,觉得我是没事找事,里面都是些很琐碎的问题。...我相信一个真正优秀的ASP.NET(及WinForm)开发人员应该不仅仅会拖放控件到设计器中,也应该掌握更多的东西。一个优秀的赛车比赛选手很了解他自己的坐驾,他知道哪些可以做?哪些不能做?...(明确定义了数据类型的就叫强类型,未明确类型或类型可以变化的叫弱类型。没有什么更好的说法,各有优点。强类型意义明确,发生错误的几率更低,弱类型更灵活。) PID是什么?...(Catch的时候应该捕捉具体的Exception类型,而不是通用的Exception) Debug.Write和Trace.Write有什么不同?何时应该使用哪一个?...(应该使用对象来传值,使用out是不是很好的) 特性能够放到某个方法的参数上?如果可以,这有什么用? (可以啊,用处忘记了,得翻MSDN了) C# 组件开发人员 什么时候使用override?

    40510

    拿什么来管理你,我的智能设备?

    拿什么来管理你,我的设备?...[设备管理常见方式总结] 干货放前面 各种管理方式总结起来: 使用提供Console的WEB管理界面最方便有效 使用物理串口最稳妥可靠 尽量避免使用远程管理 本地管理 本地管理是指和被管理设备在同一个局域网...GUI桌面系统,那么可以简单方便的通过VNC来管理和使用,对于习惯或者需要操作系统界面的情况来说, 此类方式最为简单便宜。...各类系统基本上自带sshd用于提供ssh的登录。 [SSH登录设备] 鼠标键盘和显示器 对于支持HDMI输出的系统来说,通过鼠标、键盘和显示器来管理设备是最直观的方式。...使用USB串口来管理设备也是一个不错的选择,通过两个USB转串口的连接,在PC上可以直接登录设备. 此功能需要设备上配置好才可使用哦。

    91350

    代码的坏味道(二)——为什么建议使用模型来替换枚举?

    为什么建议使用对象来替换枚举? 在设计模型时,我们经常会使用枚举来定义类型,比如说,一个员工类 Employee,他有职级,比如P6/P7。...而且,即使不修改,默认的防御性手段也会让那个新的枚举值将会抛出一个异常。 为什么会出现这种问题? 是因为我们定义的枚举是简单类型,无状态。...这个时候,需要用重新去审视模型,这也是为什么 DDD 是用来解决「大泥球」代码的利器。...这里,我把 EmployeeLevel 视为值类型,因为: ● 不可变的 ● 不具备唯一性 通过升级之后的模型,可以把员工视为一个领域实体 Employee: class Employee {...你看,哪天 P8 被裁了,calculateIndemnity 是一致的算法。 当然,并不是强求你把所有的枚举都替换成类模型来定义,这不是绝对的。还是要按照具体的业务逻辑来处理。

    13830

    听完李笑来的录音,我竟然学到了什么?

    7月4日,一段疑似李笑来“内部分享”的音频疯传网络。...在微信群有一个有网友说,完了李笑来的录音之后,好像学到了什么…。虽然录音很糙,但确实也反应了币群的一些内幕。...以下为录音精简版: 1、以太坊的崛起是因为央行突然限制交易所的比特币提现,从而导致资金流向以太坊。因为资金是单向流动,从而让以太坊价格不断上涨,实际与以太坊的社区和领导力没有什么关系。...其实在这之前我是不知道李笑来是何许人也,顺手也百度了一下: 李笑来,原新东方名师,自称“中国比特币首富”,著名天使投资人,著有《把时间当作朋友》、《新生——七年就是一辈子》、《TOEFL核心词汇21天突破...我们在2011年的时候每个月才花2万元,现在每个月可以花10万“,另一个女生回复到:“我现在每个月仍然只能花2万,我难受…” 有钱人的世界我们不懂! 不知道你听完这些录音有什么感想,欢迎留言讨论。

    89720

    机器人研究生的困惑:我应该做些什么?

    我越来越怀疑,我自己的优势究竟在哪?怎样才算是做科研? 当然,我知道,或许我太浮躁了,我应该踏踏实实地把理论知识学好,然后再做科研。...但问题是,没有人会等我,而且,如果我不能在现在证明我自己的价值的话,我又如何证明我将来是有价值的呢?” 知乎网友@冷哲认为,机器人是一个很庞大的体系。你不可能什么都精通,你甚至很难做到什么都懂。...首先我觉得题主应该有自信,因为这种背景的好处是你已经接触到了机器人各个领域,虽然没有深入了解。可以试着画一个框图,来整理一下做机器人需要哪些部分。...这也就是为什么题主会觉得研究生两年了什么都没学到了。因为在这两年过程中,我相信题主还是挺快乐的,因为一直在学“技术”,也就是锻炼工程能力,虽然很可惜,这本应该是本科干的。...题主现在的困扰主要是在得到了这些工程能力之后,意识到自己并没有学到什么东西,这里的东西应该就是科研了。所以题主现在应该想清楚自己到底要做一个工程师还是做一个科学家。

    2.8K130

    【知乎提问:“程序员应该走什么路线?”】-我的回答

    但从你提的问题来看,我在这个回答里,应该没有看低你。 当你达到了上面我提到的工资指标的时候,说明你的技术实力、行业积累也应该达到了相应的水平。这时,你可以开始考虑下面二个问题, 1、偏技术?...自己干时间长了,你就趟出自己的路了,你就创业了,你就不再受限于什么招聘啊、年龄啊、35之后 如何 如何 什么的这些问题的困扰了。 这是层次的提升。 //-------------- 就比如说我吧。...我2002年到的北京,一直到2014年,这12、3年里,各种坑、各种事儿、各种需求、各种bug、各种公司,反正这都是积累。到我结婚的时候,我是35岁。 回沈阳,打了几天工,然后我就自己干了。干什么呢?...我给自己当老板,不受气啊。不管钱多钱少,我全自己拿。自己当家做主的感觉,简直不要太爽。想想看,你在享受996的马福报时,你看看我在干什么? ? 你在996,我在健身 为什么我能这样?...活的体面,对于一个40来岁的中年人,还有什么比这更重要的?!你往死里研究技术,研究到40来岁,你牛b了,但你也还是打工的,老板让你三更滚,无人留你到五更!

    91310

    拿 NLP 来分析我自己的 Facebook 数据,会发生什么?

    对于我本人来说,我真的很希望可以从我产生的这些文本数据中得到一些启示,使用 NLP 来分析这些数据真的是一件非常酷的事情。...我最喜欢的词是什么? 让我们从基础开始吧。我们将这些单词列表加载到各种来源中。让我们来算一下,看看我们最常用的词是什么。让我们看看我们的前 20 名。 我们可以这样写: ?...我们可以得到一个整齐的输出: ? 我喜欢只看我的词汇,所以这就是为什么我只记录我的个人来源。我觉得有趣的是我经常在聊天中使用“哈哈”的变体。我的大多数评论都是某人的名字。...我觉得有趣的是,在 2013 年中期,我使用了很多单词。我不太确定我要做什么,但是当你把它删除到独特的单词时,那天我使用的 20,000 个单词,并不是很多很独特.........我很想知道其他人在自己的数据中找到了什么。 下一次,我想我们会对我们的 Facebook 数据进行一些情绪分析,看看我们是否能找到任何有趣的花絮。

    87320

    不想做增删改查的搬运工,我应该找什么样的工作?

    作者 | 梁唐 大家好,我是梁唐。 最近在知乎里接了几个咨询,基本上都是学生党提的,问的内容也都大同小异,想要做某某工程师,但是不知道该学什么,该如何准备,请问我有什么建议。...听起来好像蛮高端的,但实际上大部分的业务功能抽象到最后,都可以用各种形式的增删改查来表达,也就是大家经常吐槽的CRUD。 尤其是在大厂当中,做功能和做性能几乎是完全分开的。...很多时候开发功能本身是不难的,网上仿照淘宝做的购物商城和自制的聊天工具到处都是,甚至我当年计算机网络的大作业就是自己用Java写一个聊天工具。...但实际上远远没有这么简单,算法的模型和特征都不是凭空来的,需要用到大量的数据。想要把规模庞大的数据使用好,则又需要一个强大的数据系统的支持。...技术实力也不是凭空的,什么都学什么都会既不现实,也事倍功半。想要不当CRUD的搬运工,需要我们围绕性能优化而不是功能开发。 而性能优化有哪些路线呢?我前面也列举了,简单总结一下,大概有三条。

    30110

    我的神经网络不工作了!我应该做什么? 详细解读神经网络的11种常见问题

    如果是一些其他比较奇特的数据,你必须找到一种方法来检查它,以确保它在你的预处理、训练和推断管道的每个阶段都是正确的,并将它与地面实况(ground truth)数据进行比较。 -为什么?...不幸的是这一过程与机器学习应用程序是不能工作的,所以我们应该非常小心检查我们在每个阶段的过程,这样我们就会知道,当一个错误已经产生时,我们就需要回去更彻底地检查代码。...最可能的情况是你的输出值是无限的正数或负数——在这种情况下,你不应该在最后层使用激活函数。...在它们三个中选择一个(我最喜欢的是“lecun”),一旦你的神经网络开始运作,你就可以自由地尝试,直到你找到最适合你的任务。 -为什么?...你可能听说过你可以用“小随机数”来初始化神经网络的权重,但这并不是那么简单。以上所有的初始化都是用复杂和详细的数学方法发现的,这就解释了为什么它们是最优的。

    1.7K30

    编程天才楼天城的科幻时代:我为什么来广州创业无人车

    而落户广州南沙超过一周年,他带领的小马智行(Pony.ai),融资超过两亿美元,估值10亿美元,成为国内首家常态化试运营车队,小马智行“吸金”,“吸睛”,对于他们这个“智慧团队”来说,基本上不是什么问题...“牛人的学习能力都很强,(参加比赛)我觉得这是一个逼迫自己不断学习的过程。”...“首先,姚院士帮我树立了科学研究需要理论的深度的意识,其次在攻读博士的时候,他引导我去做人工智能的研究,后面也给了很多资源提高相关方面的能力。”...规模化的无人车队在技术和运营给楼天城的团队带来双重挑战,“最难的是系统的稳定性,车队可能需要99.99%的稳定性才能与一辆车99%的稳定性持平,需要的是整个系统的重构而不仅仅是单个技术的优化。”...与此同时,楼天城还举办了Pony.ai算法竞赛,不遗余力地在各高校、公司招聘人才,广告语用的就是他自己的理念,“与世界最优秀的人一起工作”。 “无人驾驶最早在我脑海中也是一个科幻的时代。”

    1.2K20

    我用编程模拟疫情的传播来告诉你: 为什么现在的你还不能出门

    看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己的理论:我们城市才一点确诊病人,而且在距离我们很远的地方,我就出去一会儿,哪有那么巧合,就感染上了。没事儿的!大街上都没人,我戴着口罩又没事。...因此通过这一次的疫情防控,为了你、我、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内的这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力的政府比如中国,和广大的医院医生护士等伟大的工作者们的努力,所以平时请尽量的尊重他们的这个职业。 ?...终于到了什么都不做,就可以为国家贡献自己的力量的时候了。

    2.1K10

    RDB 和 AOF 持久化的原理是什么?我应该用哪一个?它们的优缺点?

    二者的区别 RDB 和 AOF 我应该用哪一个 AOF BGREWRITEAOF 重写 备份 Redis 数据 Redis 提供了 RDB 和 AOF 两种持久化方案: RDB:生成指定时间间隔内的...Redis 内存中数据快照,是一个二进制文件 dumpr.rdb AOF:记录 Redis 除了查询以外的所有写命令,并在Redis 服务启动时,通过重新执行这些命令来还原数据。...AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式追加记录,可以打开文件看到详细的操作记录。 RDB 和 AOF 我应该用哪一个?...Redis 支持同时开启 RDB 和 AOF,系统重启后,Redis 会优先使用 AOF 来恢复数据,这样丢失的数据会最少。...更多技术干货 近期100多篇技术干货,升职加薪必看 数组下标为什么从0开始,而不是1? 数据库架构:分库分表-垂直?水平? 数据库架构:主备+分库?主从+读写分离?

    97940

    Appium上下文和H5测试(二)

    进入这个页面也是需要时间的。WebView 这个元素当中,放的才是 html 页面。真的等到 html 页面加载出来之后,再去获取所有相关的内容,这样比较好。...用什么样的语句来获取我们的 WebView、获取我们的原生控件呢? 它这个东西在我们 App 当中叫做context,翻译成中文就是上下文。...也可以将你得到的 Web 名称放在driver.switch_to.context(None)中替换 None 就可以了。...# 即便用Selenium Webdriver 写代码,也可以把MobileBy引进来,只要我不去用移动端的定位方式,都是可以做的。...上篇文章 中此处代码错了,应该改成这样: ? ---- 公众号 清菡软件测试 首发,更多原创文章:清菡软件测试 95+原创文章,欢迎关注、交流,禁止第三方擅自转载。

    52820

    这玩意比ThreadLocal叼多了,吓得why哥赶紧分享出来。

    或者说:什么情况下会导致不安全的分页? 来,就当是一个面试题,并且我给你提示了:从 ThreadLocal 的角度去回答。...ThreadLocal 参数被错误的使用。...当 B 开始调用 C 了,说明 A 到 B 之前的调用已经完成了,那么之前的上下文信息就应该清除掉。 这时 RpcContext 里面保存的应该是 B 调用 C 的上下文信息。...还有你说的 AL2 是什么东西,你能不能告诉我? 我一定会尽快修复的。 这么一来一回,我大概明白这两个人在说什么了。 Netty 的爸爸说你用了我的代码,这完全没有问题,但是你得遵循一个协议哦。...才疏学浅,难免会有纰漏,如果你发现了错误的地方,可以在留言区提出来,我对其加以修改。 感谢您的阅读,我坚持原创,十分欢迎并感谢您的关注。 ?

    49030

    简单了解InnoDB底层原理

    那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的? 其实存储引擎也很简单,我认为就是一种存储解决方案,实现了新增数据、更新数据和建立索引等等功能。...先把这个问题放一放,我们先来了解一下InnoDB存储引擎的底层原理。...MySQL层面 InnoDB层面 MySQL日志 MySQL的日志可以分为错误日志、二进制文件、查询日志和满查询日志。 错误日志 很好理解,就是服务运行过程中发生的严重错误日志。...当我们的数据库无法启动时,就可以来这里看看具体不能启动的原因是什么 二进制文件 它有另外一个名字你应该熟悉,叫Binlog,其记录了对数据库所有的更改。...但是Row不用记录上下文信息了,只需要关注被改成啥样就行。 MixedLevel 就是Statement和Row混合使用。 具体使用哪种日志,需要根据实际情况来决定。

    65020

    DDD实战之二:看看代码结构长啥样

    为此,我特别将“群买菜”生鲜电商系统服务端代码新旧代码结构都显示出来,让您看看原来的旧代码——也就是“事务脚本式”代码长啥样(应该是目前大部分 java 程序员写代码的样子),再让您看看 DDD 改造设计后的新代码长什么样子...为了避免您可能不太了解这种代码结构,我还是简单解释下。 标号 1 位置:这里放的是 Controller(控制器)层代码,也就是所有前端访问的接口都在这里实现。...下面是新代码的结构截图(同样注意下面的 1~8 标号): 对上面的代码标号位置,我来逐个解释如下(需要说明的是:这里目录排序是 IDEA 开发工具自动按字母顺序排序,不是代码设计先后顺序): 标号...从这里开始,我们解释某个“限界上下文”内的代码结构。具体这些代码怎么设计的细节,我们后面会讲,现在你只需要知道这里放的是“业务逻辑核心”即可。...local 目录下方的是本限界上下文向外提供的“应用服务”,是将 domain 内各种“充血模型”代码进行封装后的、完整的业务逻辑;而 remote 目录下,放的是对 local 目录为了满足“远程调用

    83920
    领券