总览

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的更多相关文章

  1. ArcGIS API Reference & Flex API samples学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________学习资源: 1.http://help.arcgis.com/en/webapi/flex/apiref/index.html ...

  2. [转]bitcoin API reference (JSON-RPC)

    本文转自:https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29#Node.js API reference (JSON-RPC)     Co ...

  3. InfluxDB HTTP API reference

    InfluxDB HTTP API reference API地址:https://docs.influxdata.com/influxdb/v1.6/tools/api/ The InfluxDB ...

  4. [Windows Azure] Management REST API Reference

    Management REST API Reference 27 out of 42 rated this helpful - Rate this topic The SQL Database Man ...

  5. TensorFlow源代码学习--1 Session API reference

    学习TensorFlow源代码,先把API文档扒出来研究一下整体结构: 一下是文档内容的整理,简单翻译一下 原文地址:http://www.tcvpr.com/archives/181 TensorF ...

  6. Chrome-Console( Command Line API Reference)

    来源于:https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference The Comma ...

  7. Salesforce LWC学习(六) @salesforce & lightning/ui*Api Reference

    上一篇中我们在demo中使用了很多的 @salesforce 以及 lightning/ui*Api的方法,但是很多没有细节的展开.其实LWC中针对这些module提供了很多好用的方法,下面对这两种进 ...

  8. 【NFC】Android NFC API Reference中英文

    0 Near Field Communication Near Field Communication (NFC) is a set of   short-range wireless technol ...

  9. PhoneGap API Documentation API Reference

    API Reference-API参考 Accelerometer-加速度计 Tap into the device's motion sensor.-点击进入该设备的运动传感器. Camera-相机 ...

随机推荐

  1. Java接口和抽象类的区别

    今天看到项目中,写了一个抽象类,里面有很多方法继承了这类,当调用这个接口时,采用的是这个抽象类去调方法的,当时一想,这个不就是我们说的Java的多态的特征: 继承:存在继承关系的子类和父类 重写:子类 ...

  2. easyui-combobox实现省-市-区县级联菜单

    省:<input id="sheng" class="easyui-combobox" style="width:100px" dat ...

  3. Tips for newbie to read source code

    This post is first posted on my WeChat public account: GeekArtT Reading source code is always one bi ...

  4. Execute Sql Task 的Result DataSet如何返回

    Execute Sql Task的Result DataSet 主要有以下四种,当Execute Sql Task返回结果之后,需要使用SSIS Variable 来接收数据. 例子中使用的数据表代码 ...

  5. A Simple OpenCASCADE Qt Demo-occQt

    A Simple OpenCASCADE Qt Demo-occQt eryar@163.com Abstract. OpenCASCADE have provided the Qt samples ...

  6. OpenCascade Eigenvalues and Eigenvectors of Square Matrix

    OpenCascade Eigenvalues and Eigenvectors of Square Matrix eryar@163.com Abstract. OpenCascade use th ...

  7. C指针(二)

    原文链接:http://www.orlion.ga/924/ 一.指针与const限定符 const限定符与指针结合起来常见的情况有一下几种: const int *a; int const *a; ...

  8. MVC5 网站开发实践 2、后台管理

    目录 MVC5 网站开发实践 概述 MVC5 网站开发实践 1.建立项目   从这一部分开始做后台管理,首先是基本框架的 一.Data项目 1.项目添加EntityFramework引用 在Data项 ...

  9. BFC之浅析篇

    BFC是什么呢? 掏粪男孩? 当然不是咯.BFC,英文名Block formatting context,直译为“块级格式化上下文”.它是W3C CSS 2.1规范中的一个概念,决定了元素如何对内容进 ...

  10. 2、Redis入门介绍

    1.什么是Redis Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数 ...