abstract-definer
v0.0.1
Published
一个抽象物定义器
Downloads
3
Readme
abstract-definer
一个抽象物定义器
module abstractDefiner
一个抽象对象生成器(Constructor or Class)定义工具。
method create
从本类创建一个新的类。
abstractDefiner.create(function(本类的原型, 父类的构造器, 父类的原型){
function 本类的构造器(){}
return 本类的构造器;
});
method makeCreator
产生一个像 create 一样的新类创建(继承)工具。
abstractDefiner.create 等价于 makeCreator(Object),新类自动带有 create 方法。
- 入参 [ 父类, [options:{autoWrap}] ]
- options.autoWrap : 是否自动包裹新类的构造器,包裹用来自动调用父类的构造器。
method noop
空方法
method overwrite
定义 XX 时会报错没有定义 pick 方法。
var NN = abstractDefiner.create(function(proto){
proto.pick = abstractDefiner.overwrite(function(id){
// 用来描述需要被重写的方法,并且提供伪代码描述能力
if(last){
clear(last)
}
pickNew(id);
});
});
var XX = NN.create(function(proto){
// 没有定义 pick
});
method check
也是对新类的原型进行检查使用(就像 overwrite)
proto.xxx = abstractDefiner.check(function(字段名,实现原型的属性,实现的原型对象){
进行一些检查,不过就直接 throw new Error
});