天天看點

子產品化之AMD

前言:

即将又是在北京的一個十一,突然想起了什麼,去年好像十一也是在北京,也在**度過的。自從決全身心進入前端這個行當,也是很久沒有這麼安安靜靜地寫一些東西了,以後的路很長,希望自己還是一樣,一步一步地走踏實了。

正文:

       AMD ---------  Asynchronous Module Definition

      異步子產品定義 

       1、define

     參數:

  • id

       子產品辨別  {String}          參數是可選的  

  • dependencies

       所依賴的子產品  

  • factory

       子產品的實作,或者一個JavaScript對象

  官方提供的一個例子:

  用require 和 exports

define("alpha",["require","exports","beta"],function(require,exports,beta){
       exports.verb = function(){
              return beta.verb();
              //or .... 
             // return require("beta").verb();
       }
});      

  一個匿名的子產品,傳回一個對象

define(["alpha"],function(alpha){
     return {
          verb:function(){
               return alpha.verb() + 2;
          }
    };
});      

  一個用簡單的CommonJS包裹的方式來定義子產品

define(function(require,exports,module){
       var a = require("a"),
             b = require("b");
       exports.action = function(){};
});      

  自由定義的子產品可以定義一個對象

define({
    add:function(x,y){
          return x + y;
    }
});      

注釋:

dependencies的順序和factory參數是一一對應的。

擴充閱讀:

1、https://github.com/amdjs/amdjs-api/wiki/AMD

繼續閱讀