RequireJS中define方法和require方法原理簡單實現

介紹

AMD也是一種JavaScript模塊化規範,與CommonJs最大的不一樣在於它採用異步的方式加載依賴的模塊,最近正好看了下,這裏簡單本身實現下bash

示例代碼

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);
});

複製代碼

輸出結果

這裏咱們看到已經正常輸出,由於比較簡單沒有作詳細說明,不理解的小夥伴能夠本身敲幾回,就能夠理解了,大神請忽視。app

相關文章
相關標籤/搜索