From c6f228f9852191bd414e022900d9fd322aa68e11 Mon Sep 17 00:00:00 2001 From: Kerminate Date: Fri, 24 Aug 2018 09:40:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E7=AC=94=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\276\350\247\243 ES \346\250\241\345\235\227\343\200\213.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/52.\347\262\276\350\257\273\343\200\212\345\233\276\350\247\243 ES \346\250\241\345\235\227\343\200\213.md" "b/52.\347\262\276\350\257\273\343\200\212\345\233\276\350\247\243 ES \346\250\241\345\235\227\343\200\213.md" index 06d43c6e..234790e4 100644 --- "a/52.\347\262\276\350\257\273\343\200\212\345\233\276\350\247\243 ES \346\250\241\345\235\227\343\200\213.md" +++ "b/52.\347\262\276\350\257\273\343\200\212\345\233\276\350\247\243 ES \346\250\241\345\235\227\343\200\213.md" @@ -106,7 +106,7 @@ CJS 的做法很不同,主要是由于相对于通过网络请求从文件系 首先,JS 引擎创建一个模块环境记录。这会为模块记录维护变量。然后在内存中开辟空间,让这些变量可以被导出。模块环境记录会基础追踪内存中的值导出的每个变量。内存空间并不会获取到变量的值,而是计算后得到值。 -为了实例化模块树,引擎将会完成一个叫做深度优先的后序遍历。这意味从树的地步开始,地步的依赖不会再依赖其他的东西,并且创建它们的导出。 +为了实例化模块树,引擎将会完成一个叫做深度优先的后序遍历。这意味从树的底部开始,底部的依赖不会再依赖其他的东西,并且创建它们的导出。 引擎会绘制出一个模块下的所有导出。然后绘制这个模块的所有导入。注意,导出和导入在内存中指向同一个地址。这里和 CJS 模块有区别,在 CJS 中所有导出对象的值都是一个拷贝。与之相反,ES 模块使用了类似绑定的东西。模块会指向内存这种的同一个地址。这意味着当导出模块修改了一个值,这个修改会在不在导入模块时表现出来。