<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      AMD and CMD are dead之KMD規(guī)范

      2014-06-20 09:26  【當(dāng)耐特】  閱讀(2923)  評論(7)    收藏  舉報

      What’s KMD?

      亂世出英雄,KMD名字的由來充滿了殺氣。

      Kill AMD and CMD

      KMD為替代混亂的AMD和CMD世界而生,一統(tǒng)天下。或者讓這個混亂的世界更加混亂,導(dǎo)致:

      KMD AMD CMD三分天下

      KMD的目標(biāo)從來都是遠大的:

      JS工程化終極解決方案

      使用KMDjs的工程師從來都是:

      image

      尼瑪,什么東西,這么NB?

      KMD規(guī)范

      0.KMD只暴露兩個關(guān)鍵字,一個是define用來定義模塊和加載模塊,一個是kmdjs,用來使用kmdjs.config

      1.通過define定義命名空間和類

      define("MyApp.User", {
          init: function (name,age) {
              this.name = name;
              this.age = age;
          },
          say: function () {
              alert("my name is " + this.name);
          }
      })

      其中MyApp是命名空間,User是類

      2.不允許只定義類,不定義命名空間,如:下面的做法是錯誤的:

      define("User", {
          init: function (name,age) {
              this.name = name;
              this.age = age;
          },
          say: function () {
              alert("my name is " + this.name);
          }
      })

      3.通過statics給類定義靜態(tài)屬性和方法:

      define("NS2.Model.Animate",["NS2"], {
          statics: {
              Version: "1.0",
              CreateGUID: function () {
                  return 2;
              }
          },
          init: function (name, age) {
              this.name = name;
              this.age = age;
          }
      })

      4.通過冒號實現(xiàn)繼承:

      define("NS2.Model.User:NS2.Model.Animate", {
          statics: {
              CreateGUID: function () {
                  return 3;
              }
          },
          init: function (name, age) {
              this.name = name;
              this.age = age;
          }
      })

      4.靜態(tài)屬性可繼承,可覆蓋,父類的保持不變

      5.通過define方法引用命名空間,引用之后,該命名空間下的類全部可以使用

      require(["NS", "NS2", "NS2.Model"], function () {
          //這里面可以使用上面三個命名空間下的所有類
      })

      這里不需要擔(dān)心會加載大量Class,KMDjs會拿到function(){}去分析用來哪個命名空間下的哪個類,然后按需加載執(zhí)行。

      6.通過_super訪問父類方法:

      define("NS2.Model.User:NS2.Model.Animate", {
          init: function (name, age) {
              this._super(name, age);
              this.sex = "男";
          }
      })

      8.js文件名和類名一致

      
      

      9.類名和命名空間以及文件路徑的關(guān)系在kmdjs.config方法配置

      KMDjs網(wǎng)址

      http://kmdjs.org/ 備案中..

      http://kmdjs.github.io/  kmdjs在github官網(wǎng)

      http://htmlcssjs.duapp.com/kmdjs/  kmdjs在BAE

      kmdjs@QQ.com kmdjs官方郵箱

      @當(dāng)耐特 kmdjs官方微博

      總結(jié)

      AMD and CMD are dead. That's all.

      我不是認真,我就是為了輸贏.

      主站蜘蛛池模板: 亚洲国产午夜精品理论片妓女| аⅴ天堂中文在线网| 国产一区二区三区四区五区加勒比| 国产91精品丝袜美腿在线| 亚洲国产成人久久精品不卡| 国产毛片精品av一区二区 | 色婷婷欧美在线播放内射| av日韩精品在线播放| 欧美国产日产一区二区| 377P欧洲日本亚洲大胆| 最新的国产成人精品2022| 无码无需播放器av网站| 国产精品美女乱子伦高| 亚洲中文久久久精品无码| 中文熟妇人妻av在线| 波多野结衣在线精品视频| 国产亚洲精品第一综合麻豆| 2019nv天堂香蕉在线观看| 国产精品国产三级国快看| 国内精品极品久久免费看| 亚洲中文字幕无码专区| 友谊县| 欧洲中文字幕国产精品| 亚洲综合无码日韩国产加勒比| 99精品国产中文字幕| 丰满无码人妻热妇无码区| 美女胸18大禁视频网站| 中文字幕成熟丰满人妻| 色九月亚洲综合网| 高清破外女出血AV毛片| 正安县| 欧美精欧美乱码一二三四区| 国产一区二区三区色噜噜| 含山县| 亚洲精品日本一区二区| 亚洲精品日本久久久中文字幕| 国产高清不卡视频| 日韩av在线不卡一区二区三区| 久国产精品韩国三级视频| 亚洲一区久久蜜臀av| 好吊视频一区二区三区 |