kmdjs api reference
总览
kmdjs的主要就两个API:kmdjs.config和define
kmdjs.config
kmdjs.config是用于项目整体配置,一般的配置如下所示:
kmdjs.config({
name:"HelloKMD",
baseUrl: "js",
classes: [
{ name: "HelloKMD.Ball" },
{ name: "Util.Bom",url:"Util" }
]
});
其中:
name:项目的名称
baseUrl:基础的路径
classes: 项目中定义的所有的类,其中的name是命名空间+类名,url是该类对应的目录
项目目录结构如图所示:

define
define可以传入两个参数,如:
define("namespace.class",{
})
也声明依赖,传入三个参数,如:
define("namespace0.class1",["namespace1,namespace2"],{
})
这里需要注意两点:
- 依赖项列表是namespace,非class/module
- 如果要使用namespace0下的class2无需在依赖列表中加入namespace0,因为class1本身就属于namespace0,namespace0下的任何class都可以随意使用
这里可能有童鞋会担心,kmdjs是否会预先加载namespace0所有的class。这点大可放心,kmdjs会使用uglify2去分析依赖,加载里面用到的class。
对应上面的kmdjs.config,相关js文件一定存在如下的class定义:
define("HelloKMD.Ball", {
})
define("Util.Bom", {
})
这里需要注意一点:
- 如果不显示声明namespace,如下面代码所示:
define("Ball", {
})
那么它就默认处于:kmdjs.config中的name的命名空间下,即:HelloKMD.Ball
define高级之继承
父类:
define("Animal", {
ctor: function (age) {
this.age = age;
}
})
子类:
define("Pig:Animal", {
ctor: function (age, name) {
this._super(age);
this.name = name;
},
climbTree: function () {
return "猪不能上树";
}
})
可以通过ctor是构造函数,this._super访问父类的方法。在其他js里直接new就能创建对象实例。如,在Main中使用:
define("Main", {
ctor: function () {
var pig=new Pig(16,"巴西猪");
}
})
当然,如果需要扩展一个类的静态方法或者属性,可以通过下面这种方式:
define("Base.Http", {
statics: {
version:"1.0.0",
ajax:function(option){
...
},
jsonp:function(){
...
}
}
})
在其他js里直接new就能创建对象实例。如,在Main中使用:
define("Main",["Base"], {
ctor: function () {
Http.ajax({
...
})
}
})
kmdjs.config高级之跨项目跨url依赖
kmdjs.config({
name: "HelloKMD",
baseUrl: "js",
deps: [
{
url: "OtherTopNs.js",
classes:[
{ name: "OtherTopNs.Ball" },
{ name: "OtherTopNs.XXX" }
]
},
{
url: "http://htmlcssjs.duapp.com/Bom.js",
classes: [
{ name: "Util.Bom" }
]
}
],
classes: [
{ name: "HelloKMD.Animal" },
{ name: "HelloKMD.Pig" },
{ name: "HelloKMD.PigSub" }
]
});
这里需要build出OtherTopNs下面的某些class,且听下回分解..
详细代码见:https://github.com/kmdjs/kmdjs
kmdjs api reference的更多相关文章
- ArcGIS API Reference & Flex API samples学习进度备忘
书签:跳过:另外跳过的内容有待跟进 __________________学习资源: 1.http://help.arcgis.com/en/webapi/flex/apiref/index.html ...
- [转]bitcoin API reference (JSON-RPC)
本文转自:https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29#Node.js API reference (JSON-RPC) Co ...
- InfluxDB HTTP API reference
InfluxDB HTTP API reference API地址:https://docs.influxdata.com/influxdb/v1.6/tools/api/ The InfluxDB ...
- [Windows Azure] Management REST API Reference
Management REST API Reference 27 out of 42 rated this helpful - Rate this topic The SQL Database Man ...
- TensorFlow源代码学习--1 Session API reference
学习TensorFlow源代码,先把API文档扒出来研究一下整体结构: 一下是文档内容的整理,简单翻译一下 原文地址:http://www.tcvpr.com/archives/181 TensorF ...
- Chrome-Console( Command Line API Reference)
来源于:https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference The Comma ...
- Salesforce LWC学习(六) @salesforce & lightning/ui*Api Reference
上一篇中我们在demo中使用了很多的 @salesforce 以及 lightning/ui*Api的方法,但是很多没有细节的展开.其实LWC中针对这些module提供了很多好用的方法,下面对这两种进 ...
- 【NFC】Android NFC API Reference中英文
0 Near Field Communication Near Field Communication (NFC) is a set of short-range wireless technol ...
- PhoneGap API Documentation API Reference
API Reference-API参考 Accelerometer-加速度计 Tap into the device's motion sensor.-点击进入该设备的运动传感器. Camera-相机 ...
随机推荐
- Ajax_05之跨域请求
1.跨域请求: Cross Domain Request:跨域名的HTTP请求,浏览器从某个域名下的资源访问了另一域名下的另一资源(协议.域名或是端口号不同): ①浏览器允许跨域请求的情形: < ...
- webpack + vuejs 基本配置(一)
开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在你实 ...
- LINQ系列:Linq to Object联接操作符
联接是指将一个数据源对象与另一个数据源对象进行关联或联合的操作.这两个数据源对象通过一个共同的值或属性进行关联. LINQ的联接操作符将包含可匹配(或相同)关键字的两个或多个数据源中的值进行匹配. L ...
- gcc
gcc编译源文件一步到位的命令就是 $ gcc demo.c -o demo 实际上这一步包含了四步: 1.预处理 $ gcc -E demo.c demo.i 预处理功能主要包括宏定义,文件包含,条 ...
- 解决FragmentTabHost切换标题栏变更问题
现在都流行FragmentTabHost布局.但是所有的fragment都是共享一个actionbar,但是我们又想给每个fragment定义自定义的标题栏.百度google了好久也没有找到解决方案. ...
- iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果
在公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的.在之前的博客中也提到过,团队合作使用Storyb ...
- linux中断与异常
看了<深入理解linux内核>的中断与异常,简单总结了下,如果有错误,望指正! 一 什么是中断和异常 异常又叫同步中断,是当指令执行时由cpu控制单元产生的,之所以称之为异常,是因为只有在 ...
- 为SharePoint 站点添加通知
作为思想.内容的共享型产品,SharePoint 不出意外的成为其中最好用的产品之一,想想平时在公司中接到通知并了解通知内容是件很平常的事情,那让这种平常的事情进入到SharePoint中可以通过如下 ...
- objective-c 语法快速过(6)内存管理原理
内存管理基本原理(最重要) 移动设备的内存极其有限(iphone 4内存512M),每个app所能占用的内存是有限制的(几十兆而已). 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不 ...
- Color Transfer between Images code实现
上计算机视觉课老师布置的作业实现论文:Color Transfer between Images 基本思路是: 1.给定srcImg和targetImg 2.将RGB空间转为Lab空间 3.根据论文中 ...