javascript - 这 2 个 JavaScript 语句是否等效?
问题描述
这两个陈述似乎做同样的事情。
const handleClick = () => alert('foo');
和
function handleClick() {
alert('foo');
}
它们是相同的,只是在语法上不同吗?第一个看起来像一个变量声明,而第二个显然是一个函数定义。
解决方案
不,它们不是一回事。箭头函数有一些限制:
- 对 this 或 super 没有自己的绑定,不应用作方法。
- 没有 new.target 关键字。
- 不适用于 call、apply 和 bind 方法,这些方法通常依赖于建立作用域。
- 不能用作构造函数。
- 不能使用yield,在它的体内。
推荐阅读
- java - 给定算法的时间复杂度是多少?
- javascript - 如何使用 HTMLService / Google Script / Sheet 中的日期选择器返回值?
- mongodb - 当配置中未指定时,mongo 客户端如何知道要使用哪个 authMechanism?
- javascript - 如何使用样式化组件将按钮固定在标题右侧?
- c++ - 链接错误 cmake - 在 cmake 中使用 CodeSynthesis XSD
- node.js - output.globals 中没有为外部模块“ngx-cookie-service”提供名称——猜测是“ngxCookieService”
- microsoft-graph-api - 为多个用户订阅 MS Graph API 中的存在
- python - 如何在最近的 Windows 计算机上的 C:\Program Files 中安装 Python?
- r - r Shiny:如何在应用程序上放置可下载的 PDF
- javascript - 我的下拉按钮在文本上不可点击,但可在按钮上的其他任何地方点击