首页 > 其他分享 >commonjs exports require module 参数

commonjs exports require module 参数

时间:2024-12-06 16:34:52浏览次数:3  
标签:__ commonjs require exports module var moduleId

function require(modulePath){
    // 根据传递的模块路径获取模块id
    var moduleId = getModuleId(modulePath);
    if(caches[moduleId]){
        return caches[moduleId];
    }
    function _require(exports,require,module,__filename,__dirname){
        // 目标模块的代码
    }
    var module = {
        exports:{}
    }
    var exports = module.exports
    var __filename = moduleId
    var __dirname = getDirname(__filename)
    _require.call(exports,exports,require,module,__filename,__dirname)
    caches[moduleId] = module.exports
    return module.exports
}
这是模仿require函数写的代码
他会将所有代码转换为requre函数的代码
在1.js 里面打印arguments来进行验证
require函数里面有5个参数就是arguments的这几个
另外在初始化时exports module.exports this三个是相等的
// index.js中
console.log(module.exports === exports,exports === this) // this // { // a:1, // b:2, // f:6 // } // exports = { // c:3,e:5 // } // module.exports = { // d:4 // } this.a = 1; exports.b = 2 exports = { c:3 } module.exports = { d:4 } exports.e = 5 this.f = 6 console.log(this,exports,module.exports)
// 2.js中
const r = require('./index.js')
console.log(r)
true true { a: 1, b: 2, f: 6 } { c: 3, e: 5 } { d: 4 } { d: 4 }
 

 

标签:__,commonjs,require,exports,module,var,moduleId
From: https://www.cnblogs.com/MDGE/p/18591052

相关文章

  • node中require的用法和搭配?
    node中require的用法和搭配在Node.js中,require 是一个内置的函数,用于导入模块。模块可以是Node.js内置的模块,也可以是第三方模块,或者是自定义的模块。使用方法如下://导入内置模块constfs=require('fs');//导入第三方模块,如expressconstexpress=require('expre......
  • 请说说commonJS模块与ES模块的差异有哪些?
    CommonJS模块和ES模块是JavaScript中两种不同的模块系统,它们在语法、执行时机、动态导入等方面存在显著差异。1.语法:CommonJS:使用require()同步加载模块,使用module.exports或exports导出模块成员。//模块Aconstadd=(a,b)=>a+b;module.exports={......
  • require_once攻击
    php中的require_once方法好include_once方法只允许对某文件包含一次,其核心原理是将包含过的文件注册到哈希表中.而我们可以通过重复使用/proc/self/root来构成哈希冲突,从而实现对一个文件的多次包含.示例如下:<?phphighlight_file(__FILE__);require_once'flag';if(isset(......
  • HTML5中required属性有什么应用场景?
    HTML5的required属性主要用于表单验证,它指定了某个表单元素是必填的。用户提交表单时,如果带有required属性的元素没有填写值,浏览器会阻止表单提交并显示错误消息。以下是required属性的一些常见应用场景:确保关键信息的收集:例如注册表单中的用户名、密码、邮箱等字段......
  • pytorch运行错误:RuntimeError: a leaf Variable that requires grad is being used in
    tensor张量参与的运算,都会生成计算图,哪怕其中只有一个tensor,剩下的也都会被强制类型转换因此每一步要分清实在构建计算图还是在更新值。每一个tensor分为grad梯度和data。grad也是一个tensor。如果要更新,务必确保参与运算的每一个元素都是值(非tensor)出现报错的原因就是更新......
  • Android Studio 中使用switch语句时报错Constant expression required的解决方法
    在工程目录下第一级的gradle.properties中添加:android.nonFinalResIds=false然后SyncNow重新gradle,就不会再报错了。 1. Android项目中,资源文件(如R.string、R.layout等)会在构建时生成对应的R类,包含每个资源的唯一ID。过去,这些资源ID默认是final的。andr......
  • 解决 Maven 插件报错:The plugin org.codehaus.mojo:flatten-maven-plugin:1.5.0 requi
    检查Maven版本:首先,确认当前使用的Maven版本是否与插件要求的版本一致。可以通过在命令行中输入 mvn-v 来查看当前Maven的版本信息。升级或降级Maven版本:如果当前Maven版本过低,需要升级到插件要求的版本;如果过高,可能需要降级。升级或降级Maven可以参考Maven的官......
  • 打造双模兼容npm包:无缝支持require与import
    为了实现一个npm包同时支持require和import,你需要确保你的包同时提供了CommonJS和ES6模块的入口点。这通常是通过在package.json文件中指定main和module字段来实现的,以及在构建过程中生成两种不同模块格式的文件。以下是具体步骤:设置package.json:main字段:指定CommonJS模......
  • roslaunch carla_ros_bridge carla_ros_bridge.launch运行报错逐条解决REQUIREDproces
    前言:跟着自动驾驶之心的老师学习仿真,在carla_ros_bridge那块卡住了,遇到了超多问题,现在看看我们是怎么解决的吧。首先是carla_ros_bridge安装,老师是18.04,我的项目工程是20.04,所以我肯定最终还是要换到20.04的,所以以下就是踩坑。一.carla_ros_bridge安装:可见官网的文档ROSbri......
  • permission_required 权限需要添加应用名称
    Django之所以能在permission_required='view_customer'中正常判断权限,是因为它在默认情况下使用当前视图所属应用的app_label。如果没有显式指定应用名,Django会假设权限属于当前视图对应的应用。在customers应用中,permission_required='view_customer'能够正常工作,原......