我正在尝试弄清楚箭头功能如何工作。
例如箭头函数不能用作带有新关键字的构造函数。另外,箭头功能不存在prototype属性。
我知道他们绑定到词法上。 但是我们的浏览器如何理解箭头功能。我如何理解箭头功能的基础工作。
如何向JavaScript添加新功能以及浏览器如何理解它?
如何向JavaScript添加新功能以及浏览器如何理解它?
通过Ecma TC39委员会管理的the TC39 process将新语法(如箭头功能)和对象(如Promises)添加到语言中。
Ecma TC39委员会负责发展ECMAScript编程语言并编写规范。
您可以在此处看到链接,以大致了解建议书必须经历的各个阶段才能被添加到语言中。一旦添加到语言中,将在the official specification中详尽地描述新的关键字或对象,该关键字或对象旨在描述有关如何实现某事物的all详细信息。人们将重点放在使事物尽可能具有确定性。为了实现跨环境的兼容性,委员会必须在尽可能多的情况下找出精确的语义。通常需要聪明人进行大量讨论和思考。
一旦对提案的描述已基本完成,并且提案已进入第3阶段(在第一个链接中进行了更详细的描述),则预计环境将开始实施该提案。因此,例如,在这一点上,您可能希望Chrome(V8)和/或Firefox最终开始发布新的浏览器版本,其中可能包含对新语法(关键字,对象等)的支持,]
一旦该提案具有一些“现场”实现,并且一切似乎都按预期执行,则ECMAScript编辑器会将新提案集成到正式规范中,并且可以说该提案已“完成”。 。
该过程的另一个摘要可以找到here。
特别是对于箭头功能,它们是在ES2015中添加的,因此浏览者在2015年左右的某个时候开始修改其Javascript解释器,以按规范要求处理箭头功能。 2015年以后的大多数浏览器版本都了解箭头功能; 2015年之前的浏览器不支持。 (因此,例如,2013年的IE11不会并且永远不会理解箭头功能-箭头功能的规范在浏览器版本发布后就发布了。)