1天学会swift2 0语法(2)for循环 和
995 2023-04-03 03:04:17
定义类Module
判断文件是否存在,不存在就不用加后缀了
Reflect.ownKeys取出对象
根据keys(上文定义的文件策略)逐个匹配,匹配到了就返回
new Module
Module._cache 做缓存第一次加载则创造缓存
获取模块中的内容,包装函数,让函数执行,用户的逻辑会给module.exports赋值
封装module.load
拿到文件的扩展名
根据扩展名找到对应的策略
试运行
拿到文件脚本
拿到模板字符串
将模板字符串编译为函数
实现一个简写
thisValue
改变this指向
执行
json类型的文件
json文件的写法
对于json文件,直接将json挂载到exports对象上
执行
加缓存的作用——多次require也不会多次加载
可以这样
最终用户使用的结果都来自于module.exports,如果只是改变exports引用,不会影响module.exports的值...
直接使用global属性,可以不用导出了
污染全局,不建议使用