js补充5

导入导出

在script标签内使用import的时候,必须在script标签加上type = “module”
当使用script标签加上type = "module"的时候,是当所有模块都加载进来才进行工作的,也就是如果html在script标签下面也是可以正常运行的,他是后解析的
当使用script标签加上type = "module"的时候,script标签里面的内容都是默认使用严格模式的
当使用script标签加上type = "module"的时候,script标签里面的内容是拥有独立作用域的,每一个type = "module"的script都是不同的独立作用域
在script标签内使用import 导入内容的时候同一个文件的内容的时候,只会执行一次这个文件
批量导入
import * as aa from ''
aa.name  // 使用
按需动态加载
import ('地址').then(res=>{
		//	res是导出的内容
})
简单版本模块管理工具
  <script>
    let module = (function () {              // 这里就是模块管理区域
      let modulesList = {}                   // 用来保存模块
      let moduleActions = []                 // 用来保存模块被引用了的时候的动作,保存下来传递给
      function define(name, modules, action) {     // 定义模块的方法
        modules.map((item,i)=>{                    // 遍历引用的模块的名字
          if (modulesList[item]) {                 // 如果这个模块存在就存起来,在引用模块的时候,把被引用的模块内容传递给引用他的模块
            moduleActions[i] = modulesList[item]
          }
        })
        modulesList[name] = action.apply(null, moduleActions)    // 执行这个动作并且存到modulesList对应模块name里面
      }
      return { define }
    })()
    module.define('aa', [], function () {    //  这里是一个用来被引用的模块 参数:名字,引用模块的名字数组,动作
      return {
        max(arr) {
          return arr.sort((a, b) => b - a)[0]
        }
      }
    })
    module.define('bb',['aa','qq'],function(res){     // 去正常引用模块
      console.log( res.max([1,3,9,8]));
    })
  </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值