• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
pinkowonote
博客园    首页    新随笔    联系   管理    订阅  订阅
模块化

引入模块:

1. 假设有02.module.js这个模块:

 

 2. 在03.moudle.js引入02.moudle.js这个模块并执行:(文件后面的.js可以省略)

 

 

 

 

执行03.moudle.js执行成功:

 

 


 

如果03.moudle.js需要使用02.moudle.js里的变量,不能直接使用,但可以:

 

在03.moudle.js里打印02.moudle.js里的变量x:

 

 

 

 

 ???奇怪

 

 

 ???奇怪

原因是:


 

每个模块对于另一个模块来说都是封闭的,那需要暴露如像x和y这种要怎么办?

 

执行03.moudle.js执行成功:

 

 

 

 

 

 

 

 执行03.moudle.js执行成功:


 

math模块:

 

在helloWorld种执行math模块:

 

 

执行成功:


 

 模块标识:

 

 

 

 

 

 


 

全局变量:

不通过模块引入来判断是否在模块中是全局变量:

 

 

 说明a不是全局变量!


 

 需要证明a变量是在函数里运行的,不是在函数外运行的

 arguagements:伪数组对象(类数组),封装函数实参【全局里没有实参】

如果运行04.moudle.js发现里面有arguments就说明a运行在函数里

运行04.moudle.js发现里面有arguments:

 

 

 说明a运行在函数里


 

想要看到运行a的函数:

 

直接调用会把当前函数的对象打印出来:

 

 

 

但是加上拼串,前面会调用tostring(),把函数结构打印出来:

 

 

 

 

 

 


 

那么exports和require这些方法的使用由来就有根可循了:

为什么在A模块下可以使用require和exports这些方法,因为这些本身就是B模块下函数的参数,将B模块引入A模块下,当然可以使用B的参数了

因为modle是当前模块本身,当前function()函数本身,所以可以使用exports属性

 

 

 

 

posted on 2020-08-15 21:39  pinkowonote  阅读(107)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3