abstract-definer

0.0.1 • Public • Published

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
});

Readme

Keywords

none

Package Sidebar

Install

npm i abstract-definer

Weekly Downloads

0

Version

0.0.1

License

MIT

Last publish

Collaborators

  • guangwong