RequireJS中define方法和require方法原理简单实现

介绍

AMD也是一种JavaScript模块化规范,与CommonJs最大的不同在于它采用异步的方式加载依赖的模块,最近正好看了下,这里简单自己实现下

示例代码


let factories = {  };

/*
 * modsName 模块名称
 * depends  依赖
 * factory  工厂函数
 */
function define(modsName, depends, factory) {
  factories[modsName] = factory;
}

/*
 * mods      要加载的模块
 * callback  回调函数
 */
function require(mods, callback) {

    let result = mods.map(function(name) {
       return factories[name]();
    });

    callback.apply(null, result);

}

define('name', [], function() {
  return '不粘锅';
});

define('age', [], function() {
  return 11;
});

require(['name', 'age'], function(name, age) {
  console.log(name, age);
});

复制代码

输出结果

这里我们看到已经正常输出,因为比较简单没有做详细说明,不理解的小伙伴可以自己敲几次,就可以理解了,大神请忽视。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值