Zeanium
英文中文文档
介绍
Zeanium是完全面向对象的JavaScript底层框架, 它基于JavaScript语言本身封装, 没有任何前端、后端、第三方库限制, 只要能运行JavaScript的地方就可以运行zeanium核心底层库。你可以自由的使用面向对象的继承、封装、多态等等特性随意定义自己的类和模块。一次编写可以在前端、后端都可以运行。
相关产品
官方QQ群: 627104335
有任务问题可以添加qq群进行咨询
顶级内置API接口
zn.idle()
: 空函数zn.idleArray()
: 返回空数组zn.idleObject()
: 返回空对象zn.format(string, argv...)
: 格式化字符串, 可以是多个参数, 也可以是一个数组参数, 字符串里面用{xx}类似作为占位符, 根据参数索引序列一次替换, 并返回替换好之后的最新字符串。
比如以下代码:
```javascript
1. zn.format('hello {0}, you are {1} year.', 'yangyxu', '2017');
2. zn.format('hello {0}, you are {1} year.', ['yangyxu', '2017']);
```
第一行代码和第二行代码效果是一样的. 输出都是 "hello yangyxu, you are 2017 year."
zn.uuid()
: 返回一个uuid字符串值zn.serializeJSON(jsonObject)
: 序列化json数据zn.fix(target, argv...)
: 根据argv补齐target的属性集zn.extend(target, argv...)
: 根据argv只扩展target的属性集zn.overwrite(target, argv...)
: 根据argv值重写target的属性集zn.path(target, path, value)
: 设置或获取对象target属性路径path下的值zn.invoke(target, path, args)
: 执行对象target路径path下的方法, argv作为输入参数zn.deepEachObject(data, handler, context)
: 深度遍历data对象, handler是遍历函数, context是每次遍历的作用域, 并返回一个新的对象;zn.arrayValueToObject(data, handler, context)
: 遍历数组并返回一个对象zn.toString(value)
: 获取value toString的值zn.each(target, callback, context)
: 遍历对象target, callback是遍历函数, context是callback的作用域zn.clone(target)
: 克隆target对象zn.type(target)
: 获取target类型zn.is(target, type)
: 判断对象target的类型是否是type类型zn.may(target, name)
: 判断对象target是否能执行"name"时间zn.can(target, name)
: 判断对象target是否可以执行"name"事件zn.has(target, name)
: 判断对象target是否有"name"属性zn.get(target, name)
: 获取target对象属性为"name"的值zn.set(target, name, value)
: 给target对象设置值zn.gets(target)
: 获取target对象所有属性值zn.sets(target, values)
: 给对象target 批量设置值
类
定义类
每个类都有 static
、statics
、mixins
、properties
、events
、methods
6个关键之;
static
: true
或 false
, 默认值是false
, 值为true
时, 整个类是静态类, 不允许被实例化, 如果强制实例化, 系统会抛出TypeError
错误。statics
: 定义类的静态属性和方法mixins
: 继承多类, 常规是继承是单向继承, 只有一个父类, 但是有些需求是需要继承多类的就可以使用mixins关键字, 如:mixins: [User, Person]properties
: 定义类的属性集, 是一个json对象events
: 定义类的事件集, 是一个数组对象 配合对象的on/off使用methods
: 定义类的方法集, 是对象类型。init
是每个类唯一指定的构造函数, 每次实例化对象是,如果有init函数则一定会调用。
定义 人 类
var Person = zn.Class({
static: false,
statics: {
count: 1
getCount: function (){
return this._count;
}
},
properties: {
name: '',
age: {
value: 10,
get: function (value){
this._age = value; (1)
},
set: function (){
return this._age;
}
}
},
methods: {
init: function (name, age){ (2)
console.log("I'm constructor function.");
this.name = name;
this.age = age;
},
say: function (){ (3)
console.log('person hello ', this.name);
return 'person hello ' + this.name;
}
}
});
var _count = Person.getCount();
console.log(_count);
var person1 = new Person('yangyxu', 20);
person1.name = "xu";
person1.set(name, "xu");
- define any property, the system will generate the
_
+ property_name property. init
is default constructor function, the name is fixed. Call new Person()
, init constructor function will be called;- define
say
customize method.
定义学生类 学生是继承人类
var Student = zn.Class(Person, {
properties: {
grade: {
value: 10,
get: function (value){
this._grade = value; (1)
},
set: function (){
return this._grade;
}
}
},
methods: {
init: function (name, age, grade){ (2)
this.super(name, age);
this.sets({
name: name,
age: age,
grade: grade
});
},
say: function (){ (3)
this.super(name, age);
console.log('student hello ', this.name);
return 'student hello ' + this.name;
}
}
});
var _yangyxu = new Student('yangyxu', 20, 'g1');
_yangyxu.say();
定义Teacher类
var Teacher = zn.Class(Person, {
properties: {
id: ''
},
methods: {
init: {
auto: true,
value: function (argv){ (2)
this.sets(argv);
}
},
teach: function (){
return 'teacher name: ' + this.name;
}
}
});
var _yangyxu = new Teacher('t1', 20);
_yangyxu.teach();
定义模块
使用AMD方式定义模块
定义模块
zn.define([
'node:http'
], function (node_http){
return zn.Class({
properties: {
},
methods: {
}
});
});
文档
http://www.zeanium.com
License
MIT