专栏名称: 大迁世界
掘金LV8,思否10万+的作者。一个热爱前端的创业者。
今天看啥  ›  专栏  ›  大迁世界

JavaScript 中的 bind()、apply() 和 call():鲜为人知的差异

大迁世界  · 公众号  ·  · 2024-08-26 08:35

文章预览

每个开发者都应该充分理解它们的工作原理,并能够辨别它们之间的微妙差异。 首先要知道,JavaScript 函数是“一等公民”。这意味着它们都是对象值——所有函数都是 Function 类的实例,拥有方法和属性: 因此, bind() 、 apply() 和 call() 是每个 JavaScript 函数都具备的三个基本方法。 bind() 你还记得 React 的早期痛苦时代吗?当时我们仍在使用类组件,并且事件处理程序通常是这样写的: 这只是 bind() 的众多应用之一——一个严重被低估的 JavaScript 方法。 没有 bind() , sayName() 会一团糟—— alert() 根本不会生效。 这是因为 React 在内部对这个方法做了一些处理,导致 this 的引用在方法内部完全被搞乱了。 最初, sayName 显示 alert 是没有问题的——就像在这个类中的另一个方法一样: 但是,React 在后台对 greet 事件处理程序做了什么呢?它将其 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览