zoukankan      html  css  js  c++  java
  • 模块化开发

     传统非模块化开发有如下的缺点:

    1.命名冲突

    2.文件依赖

    前端标准的模块化规范:

    1.AMD - requirejs

    2.CMD - seajs

     服务器端的模块化规范:

    CommonJS - Node.js

     模块化相关的规则:

    1.如何定义模块:一个js文件就是一个模块,模块内部的成员都是相互独立的

    2.模块成员的导出和引用

     

    执行02.js文件报错,因为默认情况下每个模块之间是相互隔离的,若想把01.js成员公开出去,必须导出成员

    1.导出的第一种方式:exports

    var sum = function(a,b){
        return parseInt(a) + parseInt(b);
    }
    //导出模块成员
    exports.sum = sum;
    //02.js模块内引入01.js文件并调用
     var module = require('./01.js');
     var ret = module.sum(12,24);
     console.log(ret);

    2.导出的第二种方式:module

    //用module导出成员:(01.js文件内的导出)
    module.exports = sum;
    
    //02.js模块内引入01.js文件
     var module = require('./01.js');
    //用module引入模块
     var ret = module(12,25);  //注意与前一种方法导出的区别,module本身就是一个函数,不用.sum
     console.log(ret);

    3.导出的第三种方式:global(但很少使用,主要还是用前两种)

    /**03.js文件
     * 模块成员导出:global
     * 已经加载的模块会缓存
     */
    var flag = 123;
    global.flag = flag;
    //04.js文件
    require('./03.js');   //写多个require('./03.js');也只会加载一次,已经加载的模块会缓存,如果路径一样,就不会被执行
    console.log(global.flag);

    模块文件的后缀有3种情况:.js   .json   .node

    require('./03 ');如果不写文件后缀时,则它们三者的优先级为.js > .json > .node

     

  • 相关阅读:
    ios入门笔记(创建隐式首选项,实现系统设置,实现文件系统存储)
    ios开发(表视图)
    Android上使用OpenglES2.0遇到的一点问题
    Android平台对H264视频硬解码
    Java GC机制和对象Finalize方法的一点总结
    JVM GC之一找出不可达对象并回收
    docker 使用Data Volume 共享文件
    sscanf函数用法详解
    va_start和va_end使用详解
    NDK 的helloworld步奏
  • 原文地址:https://www.cnblogs.com/zcy9838/p/11616738.html
Copyright © 2011-2022 走看看