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