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

我应该默认使用`this`吗?

在JavaScript中,this关键字是一个特殊的变量,它表示当前执行上下文的对象。this的值在不同的情况下会有所不同,因此,是否应该默认使用this取决于具体的场景和需求。

以下是一些常见的this使用场景:

  1. 在全局作用域中,this指向全局对象(在浏览器中是window对象,在Node.js中是global对象)。
  2. 在函数中,this指向调用该函数的对象。如果没有调用对象,this将指向全局对象。
  3. 在对象的方法中,this指向该对象。
  4. 在事件处理器中,this指向触发该事件的元素。
  5. 在构造函数中,this指向新创建的对象。
  6. 在箭头函数中,this不会改变,它始终指向定义时所在的上下文。

在某些情况下,可以使用call()apply()bind()方法来改变this的值。

总之,是否应该默认使用this取决于具体的场景和需求。在编写代码时,需要注意this的值,以确保代码按预期运行。

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

相关·内容

我应该使用 PyCharm 在 Python 中编程吗?

此外,它可以在多种平台上使用,包括Windows,Linux和macOS。...此外,它对于使用流行的Web应用程序框架(如Django和Flask)进行Web开发特别有用。此外,程序员还可以使用各种API创建他们的Python插件。...此外,它拥有一个用户友好的界面,可以使用特定应用程序的插件进行自定义。 集成工具 PyCharm是用于Python开发的集成开发环境(IDE),它提供了广泛的集成工具,允许您使用各种其他技术和工具。...总体而言,PyCharm的集成工具允许您使用各种技术和工具,并使开发,测试和部署Python应用程序变得容易。...但是,您是否应该使用它取决于您的特定需求和偏好。如果您不熟悉编程或更喜欢简单的文本编辑器,则可能需要从更基本的工具开始。但是,如果您正在处理大型项目或需要高级功能,PyCharm可能是您的最佳选择。

4.6K30

2018年我应该学习Java吗

我应该学习Java吗?这是一个不断出现的问题。如果你刚开始是一个开发人员,如果你已经是一个前端开发人员,或者即使你是一个。net背景的人,很多人都想知道学习Java是否是一个正确的职业/个人开发步骤。...让我列出我经常听到的关键问题: Java过时了,过时了。 有更好的JVM语言,如Scala、Clojure和Kotlin。 我是一个前端开发人员,NodeJS不是更实用吗? 使用Java是不愉快的。...如果您是JVM新手,您是否应该使用Java,或者应该直接使用(比方说)Kotlin? 我认为,如果您想成为JVM上的职业开发人员,了解Java是必不可少的。...这就是不使用Java的原因吗?对于那些特定的案例,可能是这样。 那么您可以使用Java做什么呢?这些天真的快吗?...它已经给我们带来了一些伟大的东西,比如从Java 10开始使用var来进行类型推断。未来还有更多。 我应该学习Java吗? 是的,你应该学习Java。这是当今世界上最流行的语言。

1.1K30
  • 我应该删除微软帐户密码吗?

    例如,使用密码字典攻击常用密码,发送钓鱼链接骗取用户“主动奉上”密码,借助GPU和大量云主机暴力破解密码。...是否应该删除密码 是,我们建议你删除密码,更加安全,体验也更好。 与以前简单的密码验证登录相比,无密码手机登录确实有更多优势。 用户在手机上批准登录时需要进行身份验证,以确保是本人在操作。...two-step.png 如果绑定的邮箱、手机号等因各种原因无法接收验证码,那只能继续点击“我没有其中任何一项”,使用帐户恢复代码来重置密码。 使用恢复代码来重置密码,用户需要输入长达25位的字符。...以上两种重置密码的方式都不能使用的话,那就只能向微软申请恢复帐户,填写问题表单以证明该帐户是你的。但是,如果之前已经为帐户开启了双重验证,是无法使用这种方法恢复帐户的。...TOTP不需要联网,只需要时间同步,所以最好还是使用完全离线的产品来保存它。 保存好恢复代码。

    1.6K00

    深度 | 深度学习应该使用复数吗?

    选自Medium 机器之心编译 参与:Nurhachu Nul、路雪 深度学习只能使用实数吗?...曼德布洛特复数集合:https://en.wikipedia.org/wiki/Mandelbrot_set 深度学习只能使用实数,大家不觉得奇怪吗?...论文的结论是使用复数的网络可获取更大的记忆容量。根据数学原理,与仅仅使用实数的情况相比,使用复数需要的矩阵更小。如下图所示,使用复数的神经网络在内存开销上与传统 LSTM 有显著区别。 ?...他们研究了带有复数值的雅克比矩阵的特点,并使用它创建解决 GAN 均衡问题的最先进方法。 在去年的一篇博文中,我介绍了全息原理和深度学习的关系。...如果我们接受了目前深度学习的主流观点--任何一层的微分都是公平的,那么或许我们应该使用存储多种变体的复分析。 或许复数没有被经常使用的原因是研究者对它不够熟悉。

    1.4K90

    塔秘 | 深度学习应该使用复数吗?

    导 读 深度学习只能使用实数吗?...深度学习只能使用实数,大家不觉得奇怪吗?或许,深度学习使用复数才是更加奇怪的事情吧(注意:复数是有虚部的)。一个有价值的论点是:大脑在计算的时候不太可能使用复数。...论文的结论是使用复数的网络可获取更大的记忆容量。根据数学原理,与仅仅使用实数的情况相比,使用复数需要的矩阵更小。如下图所示,使用复数的神经网络在内存开销上与传统 LSTM 有显著区别。 ?...他们研究了带有复数值的雅克比矩阵的特点,并使用它创建解决 GAN 均衡问题的最先进方法。 在去年的一篇博文中,我介绍了全息原理和深度学习的关系。...如果我们接受了目前深度学习的主流观点--任何一层的微分都是公平的,那么或许我们应该使用存储多种变体的复分析。 或许复数没有被经常使用的原因是研究者对它不够熟悉。

    1.2K70

    应该在JavaScript中使用Class吗

    我更新了一下代码,看起来可读性更高一点,想看原版代码的可以查看历史记录) const Grey = PersonFactory('Grey'); // 使用工厂函数生成对象 const mockDomButton...(包含自定义的属性) render: xxx, property: yyy, } 直接在 js module 里定义常量、函数,然后 export 出来给其他模块用,这么简单直接不香吗?...**仅仅是为了让代码看起来更 OOP 吗? 这个油管视频 https://www.youtube.com/watch?...可以参考这个回答 https://www.zhihu.com/answer/943385371 另外,可以简单回想一下,在我们日常业务开发中,真的有需要创建那么多类对象吗?...其实我个人还是有点耿耿于怀的,虽然文章整体表达了我的观点,但感觉并没有完全把 JavaScript class 的所有坑介绍清楚(仅提了比较常见的 bind 问题),其实还有 prototype 的机制差异

    1.1K10

    我应该使用哪些Linux 稳定版内核?

    很多人都问我这样的问题,在他们的产品/设备/笔记本/服务器等上面应该使用什么样的稳定版内核。...在这篇文章我将尝试去给出我在这个问题上的看法。当然,你可以任意选用任何一个你想去使用的内核版本,这里只是我的建议。 和以前一样,在这里给出的这些看法只代表我个人的意见。...可选择的内核有哪些 下面列出了我建议你应该去使用的内核的列表,从最好的到最差的都有。...非常容易,对吗?...如果我没有在这里列出你所喜欢的发行版,并不是意味着它们的内核不够好。查看这些发行版的网站,确保它们的内核包是不断应用最新的安全补丁进行升级过的,那么它就应该是很好的。

    1.8K10

    应该在项目中使用EF Core吗?

    预计每两天一篇更新 PS: 翻译难免限于本人水平有不准确的地方,建议英文水平不错的同学直接查看原版,有不足的地方欢迎指正 第一部分目录导航 应该在项目中使用EF Core吗?...在简单介绍了EF Core以及它的工作方式之后,接下来的问题是你是否应该在项目中开始使用EF Core....学习和使用新的类库都是有成本的,特别是像EF Core这样庞大复杂的库 我会给你一个详细的答案,正如你接下来看到的,我想更直观的描述....我认为它的API改进的很好 如果你正在启动一个新的项目,并且.NET Core和EF Core适用于你的项目,那么使用EF ore意味着你不会落后 跨平台与开源 我在开章开始的时候提到EF Core支持跨平台...这是我使用EF的主要原因之一 EF Core对开发人员很友好,即使我没有编写最良好的代码也往往会创建有效的查询.

    1K40

    我为什么不建议使用框架默认的 DefaultMeterObservationHandler

    我为什么不建议使用框架默认的 DefaultMeterObservationHandler 背景知识 最近,我们升级了 SpringBoot 3.x,并且,升级后,我们全面改造了原来的 Sleuth 以及...全面使用 Observation 遇到了内存溢出以及 CPU 飙高(非不断 GC 导致) 但是,我们在全面使用 Observation 的时候,发现了一个问题,就是内存溢出以及 CPU 飙高(非不断 GC...} log.info("cost {} ms", System.currentTimeMillis() - start); } } } 在我的电脑上...默认的 DefaultMeterObservationHandler 我们看一下 DefaultMeterObservationHandler 的源码: hhttps://github.com/micrometer-metrics...longTaskSample = context.getRequired(LongTaskTimer.Sample.class); longTaskSample.stop(); } 可以看出,默认情况下

    13500

    我应该在什么时候使用 Apache Druid

    请访问 使用 Apache Druid 的公司 页面来了解都有哪些公司使用了 Druid。...如果您的使用场景符合下面的一些特性,那么Druid 将会是一个非常不错的选择: 数据的插入频率非常高,但是更新频率非常低。...大部分的查询为聚合查询(aggregation)和报表查询(reporting queries),例如我们常使用的 “group by” 查询。同时还有一些检索和扫描查询。...如果你的使用场景是下面的一些情况的话,Druid 不是一个较好的选择: 针对一个已经存在的记录,使用主键(primary key)进行低延迟的更新操作。...使用场景中需要对表(Fact Table)进行连接查询,并且针对这个查询你可以介绍比较高的延迟来等待查询的完成。 https://www.ossez.com/t/apache-druid/13604

    67730

    为什么我应该使用指针而不是对象本身

    问题 我之前一直使用 Java,现在开始转向 C++。...我发现使用 C++ 的人经常用指针表示对象,比如像下面这样: Object *myObject = new Object; 而不是, Object myObject; 或者在调用成员函数的时候,都会这样...: myObject->testFunc(); 而不是, myObject.testFunc(); 我有点想不明白为什么这么做?...什么时候该使用 new? 你需要延长对象生命周期。 意思是说你想一直使用某个地址位置的变量,而不是它的副本,对于后者,我们更应该使用 Object myObject; 的语法。 你需要很多内存。...当你确实要用动态内存分配的话,我们应该用智能指针或者其它的 RAII 技术来管理这部分资源。 什么时候该使用指针? 不过,除了动态分配内存之外,原始指针还有其它用途。

    1.4K10

    设计师应该学编程吗?程序员应该懂设计吗?

    所以设计师应该学习编程吗? 刚才举了两个较极端的例子,现实中我合作过的绝大多数设计师还是非常 nice 的,毕竟我们的目标都是共同打造出色的产品。...虽然这个行业从来不要求设计师懂得代码,但在从设计向开发的转型过程中,我真切感受到了代码能力对设计思路带来的巨大促进和提升。...我想要的一切效果,直接在浏览器中设计和打磨,输出为可交互的产品,不用去隔着屏幕一遍遍解释「应该」是怎样。 那么工程师应该学习设计吗? “此处不要写死,将来必改。”...后来我走上了职业前端的道路,工作流随之回到了曾经:等待设计稿,交付成品,然后收到一长串的反馈清单,开始新一轮的迭代。...所幸的是,不需要经历恼人的反复修改了,因为我清楚的知道怎样让对方满意,更不会让对方抓狂。

    1.8K40

    我的职业是前端工程师二:入门不是应该很简单吗?

    入门前端,是一件很难的事吗?在今天,我也没有想好一个答案,也不知道怎样给出一个答案。这个问题并不取决于前端,而是取决于不同人的需求。...慢慢地,当我开始越来越多的使用 JavaScript 时,DreamWeaver 提供的功能就变得越来越有限了,我开始觉得它越来越难用了。...曾经有一段时间里,我使用 Aptana——它可以将 minify 后的代码格式化。 现在,我使用 Intellij IDEA 和 WebStorm作为主要开发工具,它们的重构功能让我难以自拔。...多数时候你还是要用 IE 的,写下一行行的 CSS Hack,以确保大部分的用户是可以正常使用的。 今天,也仍然在使用 Chrome 作为我的日常和开发用浏览器。...到了后来,我觉得前端甚是无聊。这主要是限制于我们接的一些业务,都是企事业单位的单子,每天都是无尽的 IE 的兼容问题。这让我觉得同时使用很多个 IE 版本的 IETester,是一个伟大的软件。

    93560

    应该切换到Kubernetes Gateway吗?

    去年 Gateway API 毕业到 beta 版本时,我写了一篇关于它的文章,但一年后,问题仍然存在。您应该从 Ingress API 切换到 Gateway API 吗? 我去年的答案是不应该。...对于需要更多功能的用户,我建议使用 Ingress 控制器提供的自定义资源,以牺牲可移植性(在不同的 Ingress 实现之间切换)为代价。 随着 v1.0 版本的发布,这可能会改变。...这与使用默认的 Kubernetes 资源没有什么不同。但是您只需要像安装官方扩展一样安装这些 CRD。 与缓慢朝着长期稳定性发展的 Kubernetes 相比,这允许快速迭代。 会不会泛滥?...实现可以在不同级别上符合 Gateway API: 核心: 所有实现都应该符合这些。 扩展的: 这些可能只在某些实现中可用,但都是标准 API。...无疑是最流行的服务网格 Istio 也宣布 Gateway API 将是未来管理 Istio 的默认 API。这样的采用可以防止泛滥。

    12210

    你应该自带云吗?

    这通常从针对特定场景使用该平台开始,然后再将技术应用扩展到其他场景。作为验证某项技术的工程师,你需要一个简单、低成本的服务。...与承诺消费结合使用时,可以显著节省成本。 节省计划通常仅可用于计算实例,而不能用于云提供商的其他云服务。...Aiven的方法的好处在于我们只使用计算、存储和网络等基础服务,不使用任何其他云服务,这使我们具有可移植性和高效性。...然而,如果你使用BYOC,从技术上讲你拥有基础设施和数据,因为它们在你的云账户中。...BYOC的第二个挑战是客户有云使用承诺,这意味着必须在云提供商的特定区域使用特定类型的实例。在Aiven,我们主要为产品运行标准配置,其中我们为给定workload选择最佳基础设施。

    12910
    领券