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-相机 ...
随机推荐
- test markdown
Markdown和Haroopad介绍文档 [TOC "float:right"] 什么是Markdown Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John ...
- VS创建MVC出错解决方法
搞定
- Unity基础知识学习笔记一
1,Unity 4.5.4这个版本,在打包ios应用程序的时候.会生成一个xcode工程,但是这个工程无法在xcode6上变异,无法生成ios8上发布.所以unity在ios8发布3天内就发了4. ...
- Android调用Jni,非常简单的一个Demo
step1:创建一个android项目 Project Name:jnitest Build Target: Android 1.6 Application Nam ...
- Redis入门
一.安装 目前,官方最新稳定版本为3.0.7 # wget http://download.redis.io/releases/redis-3.0.7.tar.gz # cd /usr/local/ ...
- EF DbContext.Configuration.ProxyCreationEnabled 什么鬼?
今天在开发项目的时候,使用 EF,突然遇到了这样一个错误: An entity object cannot be referenceed by multiple instances of IEntit ...
- 【记录】JS 生成 URL 二维码
示例代码: <html> <head> <title>example</title> </head> <body> <sc ...
- 字符串模式匹配之KMP算法图解与 next 数组原理和实现方案
之前说到,朴素的匹配,每趟比较,都要回溯主串的指针,费事.则 KMP 就是对朴素匹配的一种改进.正好复习一下. KMP 算法其改进思想在于: 每当一趟匹配过程中出现字符比较不相等时,不需要回溯主串的 ...
- ASP.NET实现微信功能(2)(服务号高级群发)
前面写了一篇文章,关于微信的:http://www.cnblogs.com/kmsfan/p/4047097.html 今天打算来写本系列的第二批文章,服务号后台群发. 在写本篇文章之前,我们先来看看 ...
- Sql Server函数全解(三)数据类型转换函数和文本图像函数
一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士 ...