未验证 提交 1183a82a 编写于 作者: T theanarkh 提交者: GitHub

Merge pull request #7 from meixg/patch-1

Update chapter01 nodejs组成和原理.md
......@@ -324,7 +324,7 @@ BootstrapInternalLoaders用于执行internal/bootstrap/loaders.js。我们看一
7. const primordials = {};
8. const export = demo(process, getLinkedBinding, getInternalBinding, primordials);
```
v8把internal/bootstrap/loaders.js用一个函数包裹起来,形参就是loaders_params变量对应的四个字符串。然后执行这个数,并且传入loaders_args里的那四个对象。internal/bootstrap/loaders.js会导出一个对象。在看internal/bootstrap/loaders.js代码之前,我们先看一下getLinkedBinding, getInternalBinding这两个函数,nodejs在c++层对外暴露了AddLinkedBinding方法注册模块,nodejs针对这种类型的模块,维护了一个单独的链表。getLinkedBinding就是根据模块名从这个链表中找到对应的模块,但是我们一般用不到这个,所以就不深入分析。前面我们看到对于c++内置模块,nodejs同样维护了一个链表,getInternalBinding就是根据模块名从这个链表中找到对应的模块。现在我们可以具体看一下internal/bootstrap/loaders.js的代码了。
v8把internal/bootstrap/loaders.js用一个函数包裹起来,形参就是loaders_params变量对应的四个字符串。然后执行这个数,并且传入loaders_args里的那四个对象。internal/bootstrap/loaders.js会导出一个对象。在看internal/bootstrap/loaders.js代码之前,我们先看一下getLinkedBinding, getInternalBinding这两个函数,nodejs在c++层对外暴露了AddLinkedBinding方法注册模块,nodejs针对这种类型的模块,维护了一个单独的链表。getLinkedBinding就是根据模块名从这个链表中找到对应的模块,但是我们一般用不到这个,所以就不深入分析。前面我们看到对于c++内置模块,nodejs同样维护了一个链表,getInternalBinding就是根据模块名从这个链表中找到对应的模块。现在我们可以具体看一下internal/bootstrap/loaders.js的代码了。
```c
1. let internalBinding;
2. {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册