美文网首页
CommonJS的运行时加载和ES6的编译时加载

CommonJS的运行时加载和ES6的编译时加载

作者: 小龙虾Julian | 来源:发表于2018-08-24 15:58 被阅读0次
1、CommonJS运行时加载

CommonJS 和 AMD 模块,都只能在运行时确定这些东西。比如,CommonJS 模块就是对象,输入时必须查找对象属性。

// CommonJS模块
let { stat, exists, readFile } = require('fs');

// 等同于
let _fs = require('fs');
let stat = _fs.stat;
let exists = _fs.exists;
let readfile = _fs.readfile;

解析:上面代码的实质是整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取 3 个方法。这种加载称为“运行时加载”,因为只有运行时才能得到这个对象,导致完全没办法在编译时做“静态优化”。

2、ES6编译时加载

ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。

import { stat, exists, readFile } from 'fs';

解析:上面代码的实质是从fs模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高

相关文章

  • AMD、CMD、CommonJs、ES6的对比

    一、CommonJS 和 ES6 区别: 1.CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。...

  • 浏览器内核

    一、区别: 1.CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。 2.CommonJS 模块的r...

  • ESM和CJS区别

    ES6 Module和CommonJS区别 区别一 前者属于编译时加载,即静态加载,在编译时就能够确定模块的依赖关...

  • CommonJS的运行时加载和ES6的编译时加载

    1、CommonJS运行时加载 CommonJS 和 AMD 模块,都只能在运行时确定这些东西。比如,Common...

  • ES6——模块(module)

    运行时加载 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种,前者用于...

  • module 模块语法

    这种加载称为“运行时加载”,因为只有运行时才能得到这个对象,导致完全没办法在编译时做“静态优化”。 ES6 模块不...

  • 模块化总结

    Node CommonJS 1.CommonJS是 “运行时加载”2.require() 是加载整个 “对象”3....

  • ES6模块与CommonJS的区别

    CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。CommonJS 模块是运行时加载,ES...

  • export、default.export、module.exp

    运行时加载(commonJS) let {state,exists,readFile} =require('fs'...

  • export,import

    ES6之前模块加载方案,CommonJS (用于服务器)和 AMD(浏览器)2.CommonJS 和 AMD模块只...

网友评论

      本文标题:CommonJS的运行时加载和ES6的编译时加载

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