2020 年

共有 3 篇文章


从 QuickJS 源码理解 JavaScript 的闭包

摘要

本文从 QuickJS 源码的角度分析 JavaScript 语言中的闭包的实现原理,首先介绍闭包的概念,然后从相关 C 语言代码,一步步解析闭包以及相关的垃圾回收机制的底层实现,最后总结闭包的定义和相关原理。

QuickJS 是一个用 C 语言编写的小型 JavaScript 引擎,支持 ES2019 规范,之所以选择 QuickJS 作为本文的解析对象,是因为它的源代码源码是由 C 语言编写的,仅由几个 C 文件组成,没有那么多复杂难懂的语法,也没有任何外部依赖,阅读难度较低。

注意,这不是一篇详细解析 QuickJS 源码的文章,作者仅对闭包相关的源码做了简单的解析,部分内容是在未完全理解 QuickJS 全部功能和工作原理的情况下而撰写的,某些概念和工作原理只适用于 QuickJS,可能具有误导性,请谨慎理解。

造一个简单的浏览器

前言

本教程将通过一个简单的仿浏览器界面的程序,向你介绍关于构建图形界面程序的基础知识,掌握这些知识后,你将会对图形界面开发有更加深刻的理解。

Trad 0.2.0 开发日志

开发计划:

  • 参考 babel 的架构,重写编译器及相关模块
  • 重写 LCUI 的绑定