博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AMD and CMD are dead之KMD规范
阅读量:5364 次
发布时间:2019-06-15

本文共 1712 字,大约阅读时间需要 5 分钟。

What’s KMD?

乱世出英雄,KMD名字的由来充满了杀气。

Kill AMD and CMD

KMD为替代混乱的AMD和CMD世界而生,一统天下。或者让这个混乱的世界更加混乱,导致:

KMD AMD CMD三分天下

KMD的目标从来都是远大的:

JS工程化终极解决方案

使用KMDjs的工程师从来都是:

尼玛,什么东西,这么NB?

KMD规范

0.KMD只暴露两个关键字,一个是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给类定义静态属性和方法:

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

4.通过冒号实现继承:

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

4.静态属性可继承,可覆盖,父类的保持不变

5.通过define方法引用命名空间,引用之后,该命名空间下的类全部可以使用

require(["NS", "NS2", "NS2.Model"], function () {    //这里面可以使用上面三个命名空间下的所有类})

这里不需要担心会加载大量Class,KMDjs会拿到function(){}去分析用来哪个命名空间下的哪个类,然后按需加载执行。

6.通过_super访问父类方法:

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

8.js文件名和类名一致

 

9.类名和命名空间以及文件路径的关系在kmdjs.config方法配置

KMDjs网址

备案中..

  kmdjs在github官网

  kmdjs在BAE

kmdjs官方邮箱

kmdjs官方微博

总结

AMD and CMD are dead. That's all.

我不是认真,我就是为了输赢.

转载于:https://www.cnblogs.com/iamzhanglei/p/3798652.html

你可能感兴趣的文章
安东尼奥·维瓦尔第——巴洛克音乐的奇葩
查看>>
pandas的增删改查
查看>>
HDU 5933/思维
查看>>
字节对齐
查看>>
Design Tic-Tac Toe
查看>>
SQL中的去重操作
查看>>
uva 12097 - Pie(二分,4级)
查看>>
mongodb索引
查看>>
nginx源码学习资源(不断更新)
查看>>
【bzoj2882】工艺 后缀自动机+STL-map
查看>>
[redis] redis
查看>>
Linux的加密认证功能以及openssl详解
查看>>
[Tools] 使用XP远程登录Win8系统
查看>>
【RL-TCPnet网络教程】第38章 TFTP简单文件传输基础知识
查看>>
HDU- 2265 Encoding The Diary
查看>>
socket基本概念
查看>>
[第三方]SCNetworkReachability 获取网络状态控件使用方法
查看>>
在Windows上使用putty连接一台Linux主机
查看>>
Socket常见错误
查看>>
百度地图2.0API和3.0API。你想要的百度地图的这都有
查看>>