- node引擎中的每个js文件都属于module类
- node引擎中每个js文件都会被解析为Module对象加载到栈内存中
- node引擎中所有框架,包括小程序,最终都会被编译为js文件
- node引擎中所有js文件被编译后才逐一被创建为module对象并加载到栈内存中
Module类的构成
commonJS语法的实现原理
(1)exports只是一个语法糖,exports的默认值为{}空对象
(2)所有js文件的文件路径由js文件被编译后的module对象的filename记录这个文件
注:不管是懒加载还是非懒加载,只要js文件被node编译就会创建一个module对象记录这个文件的绝对路径
(3)exports的含义为将这个moudle对象的缓存数据取出
(4)require为每个Module对象的自带的方法,用于查找另外一个moudle对象,如果根据文件路径从栈缓存找到则取出并使用,如果根据文件路径没有从栈缓存找到就会从堆空间去找到这个文件并生成这个文件的moudle对象然后再取出
原文博客