还请大牛们指教........ require 有缓存机制么? require(name) → true or false
require 会加载这个 name,如果加载成功返回 true,若已经被加载则返回 false
下面大略整理出来的 require 查找流程。
require 会判断是否为绝对路径,若是绝对路径查找速率最快。若不是绝对路径,则
require 还有个$"路径列表。
$"是一个数组,获得 name 的绝对路径后,require 会判断这个路径是否在$"里,若在,则 require 不再 load 这个文件,若不在会 load 这个文件,并且把绝对路径加到$"里,以便下次 require 判断。
load 没有维护这个$"数组,所以他每次都会重新 load 文件,而且 load 还有一个 wrap 参数,有兴趣的可以研究下。