美文网首页
CommonJS 笔记

CommonJS 笔记

作者: 鐘濤 | 来源:发表于2017-11-18 12:51 被阅读0次

    CommonJS 规范是什么?

    在 ES6 之前 JavaScript 是没有模块的概念的,而 Python 有 import 机制,PHP 有 include 和 require 。CommonJS 有一个美好的愿景就是构建 JavaScript 的生态系统,让 JavaScript 也能够运用于 Web 服务器、桌面程序、命令行程序等,进而制定一系列的规范。而这只是一些理论,理论通常要通过实践,才能更好的推广,Node.js 借鉴了 CommonJS 的模块规范,所以 JavaScript 生态系统才变得繁荣。

    模块(Modules)规范

    每个文件都是一个模块,拥有独立的作用域,对其他文件是不可见的。

    CommonJS 模块的定义有三点:

    • 模块定义

      // hello.js 文件
      module.exports = function (){
          console.log('hello CommonJS');
      }
      
    • 模块引用

      let hello = require('./hello');
      hello(); //  打印出 hello CommonJS
      
    • 模块标识

      模块标识其实就是传递给 require() 的参数,详细可以看下面 require() 小节。

    image.png

    Module 对象

    Node.js 内部提供一个 Module 构建函数。所有模块都是 Module 的实例。在每个模块中,在文件中变量 module 是一个指向表示当前模块的对象的引用,所以 module.exports 也可以写成 exports,为什么可以这样写,因为 exports 等同于 var exports = module.exports

    The exports variable is available within a module's file-level scope, and is assigned the value of module.exports before the module is evaluated.

    参考资料

    相关文章

      网友评论

          本文标题:CommonJS 笔记

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