模块化

作者: One_Hund | 来源:发表于2018-09-16 23:03 被阅读0次

    模块化的优点

    • 解决命名冲突问题
    • 通过定义依赖可避免加载无用脚本
    • 减少代码耦合度
    • 方便多人分工合作
    • 模块复用,减少重复造轮子

    commonjs 特点

    1.通过require()方法,传入模块的标识,引入模块
    2.模块标识可以是小驼峰命名的字符串或者的./../开头的相对路径或绝对路径
    3.每个模块存在一个module对象,代表模块本身
    4.每个模块都有独立的作用域(文件即模块)
    5.通过上下文提供exports对象用于导出当前模块的方法和变量,同时exportsmodule的一个属性(可使用module.exports=..module.exports.a=..exports.a=..这3种写法,不能用exports=..这种写法)

    如以下示例:

    // 1.通过require来引入模块
    // 2.模块标识符可以是小驼峰的字符串或者是相对或绝对路径
    var http = require('http')
    var moduleA = require('./moduleA')
    
    // 3.每个模块存在一个module对象,代表模块本身
    console.log(module)
    
    // 4.每个模块都有独立的作用域(文件即模块)
    console.log(a) // a is undefined
    
    // 5.通过module.exports向外暴露对象或接口
    module.exports.a = 1
    module.exports.b = 2
    // console.log(module.exports) => { a: 1, b: 2 }
    module.exports={ a: 1, b: 2 }
    // console.log(module.exports) => { a: 1, b: 2 }
    module.exports=1
    // console.log(module.exports) => 1
    exports.a = 1
    exports.b = 2
    // console.log(module.exports) => { a: 1, b: 2 }
    
    // 上面用法均正确,以下用法错误
    exports = {a:1,b:2}
    // console.log(module.exports) => {}
    

    相关文章

      网友评论

          本文标题:模块化

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