首页
学习
活动
专区
工具
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:我们大量代码应该放在哪层?

81130
  • 到底应该使用哪个 CRI 替换 kubernetes 集群 Docker?

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

    3K20

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

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

    40410

    什么管理你,智能设备?

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

    91250

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

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

    13130

    听完李笑录音,竟然学到了什么

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

    89220

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

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

    2.7K130

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

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

    90910

    拿 NLP 分析自己 Facebook 数据,会发生什么

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

    87120

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

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

    29310

    神经网络不工作了!应该什么? 详细解读神经网络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? 数据库架构:分库分表-垂直?水平? 数据库架构:主备+分库?主从+读写分离?

    96640

    Appium上下文和H5测试(二)

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

    52620

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

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

    47430

    简单了解InnoDB底层原理

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

    64720

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

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

    77420
    领券