总览

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. SQL 联合查询 + XML解析

    (select a.EBILLNO, a.EMPNAME, a.APPLYDATE, b.HS_NAME, ), ),'') as SUMMARY, cast(c.XmlData as XML).va ...

  2. MVC实用架构设计(三)——EF-Code First(4):数据查询

    前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...

  3. mac下无法识别手机usb问题

    一.无论是mac还是windows下连接手机调试android程序,一定要确认手机开启了usb调试.如果没有开启请参考我的步骤.      设置->关于手机->版本号    连续点击版本号 ...

  4. [备忘] Automatically reset Windows Update components

    这两天遇到Windows 10的更新问题,官方有一个小工具,可以用来修复Windows Update的问题,备忘如下 https://support.microsoft.com/en-us/kb/97 ...

  5. SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右

    sql2012我重启了下sql服务,然后自增列Id居然一下子跳了1000,怎么回事啊?   如果第一条数据是1,我重启服务,再添加就是1001,如果继续添加不重启服务的话就是1002,如果再次重启的话 ...

  6. C# 将excel表格嵌入到Word中

    C# 将excel表格嵌入到Word中 继续开扒,今天要实现的是使用C#将excel表格嵌入到Word中这个功能,将word表格导入到excel中我已经写过了,如有需要可参考我之前的文章,在开始前还有 ...

  7. 分享一下刚刚HP电话面试。。。。。。。。我估计我挂了,不过还是要来分享一下

    面试官是个中国人,给我是全英文面试,总之是做HP的外包业务,说得很好的工作环境,里面都是一些老外在工作. 首先是要用英文介绍了下自己,我自己觉得自己也还是不错的吧,然后就说了一通(其实我好久没说英文了 ...

  8. 工作流引擎Oozie(一):workflow

    1. Oozie简介 Yahoo开发工作流引擎Oozie(驭象者),用于管理Hadoop任务(支持MapReduce.Spark.Pig.Hive),把这些任务以DAG(有向无环图)方式串接起来.Oo ...

  9. Extjs.Button 按钮

    Extjs  Button 的简单使用 ,同时调用Ajax服务 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xh ...

  10. wpf模仿QQ表情

    效果图: style: <Style x:Key="LBXITEM_VERTICAL" TargetType="ListBoxItem"> < ...