js原生-module的加载机制及原理

本文介绍了node引擎中,每个js文件都属于Module类,会被解析为Module对象加载到栈内存。所有框架最终编译为js文件,编译后创建Module对象。还阐述了CommonJS语法实现原理,如exports是语法糖,filename记录文件路径,require用于查找Module对象等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. node引擎中的每个js文件都属于module类
  2. node引擎中每个js文件都会被解析为Module对象加载到栈内存中
  3. node引擎中所有框架,包括小程序,最终都会被编译为js文件
  4. node引擎中所有js文件被编译后才逐一被创建为module对象并加载到栈内存中

Module类的构成

 commonJS语法的实现原理

(1)exports只是一个语法糖,exports的默认值为{}空对象

(2)所有js文件的文件路径由js文件被编译后的module对象的filename记录这个文件

 注:不管是懒加载还是非懒加载,只要js文件被node编译就会创建一个module对象记录这个文件的绝对路径

(3)exports的含义为将这个moudle对象的缓存数据取出

(4)require为每个Module对象的自带的方法,用于查找另外一个moudle对象,如果根据文件路径从栈缓存找到则取出并使用,如果根据文件路径没有从栈缓存找到就会从堆空间去找到这个文件并生成这个文件的moudle对象然后再取出

原文博客

https://blog.youkuaiyun.com/momDIY/article/details/82223856

https://www.cnblogs.com/chenguangliang/p/5856701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值