美文网首页
commonjs规范原理

commonjs规范原理

作者: Mr无愧于心 | 来源:发表于2019-02-28 19:31 被阅读0次
核心
*
* module对象:在每一个模块中,module对象代表该模块自身。
* export属性:module对象的一个属性,它向外提供接口。
* 缓存 如果多次引入一个模块,会缓存模块,不会重复执行
* 
commonjs规范的优点(解决的问题)
*
* CommonJS模块规范很好地解决变量污染问题,
* 每个模块具有独立空间,互不干扰,命名空间等方案与之相比相形见绌。
* CommonJS规范定义模块十分简单,接口十分简洁。
* CommonJS模块规范支持引入和导出功能,这样可以顺畅地连接各个模块,实现彼此间的依赖关系。
*
*
实现req(require)函数
let fs=require('fs');
//实现一个require函数
function req(fileName){
    let content=fs.readFileSync(fileName,'utf8');
    let module={
        exports:{}
    }
    //new Function 的最后一个参数是函数体    其他的参数是形参
    let fn=new Function('exports','module','__dirname','__filename',content+' \n return module.exports');
    //等价于
    /*let fn=function(exports,module,__dirname,__filename){
        console.log(content)
        eval(content);
        return module.exports;
    }*/
    module.exports=fn(module.exports,module,__dirname,__filename);
    return module.exports;
}
let h=req('./a.js');
console.log(h,21);

相关文章

网友评论

      本文标题:commonjs规范原理

      本文链接:https://www.haomeiwen.com/subject/ycgoyqtx.html