context.js
595 Bytes
/**
* 上下文基类,所有继承自该类的类携带上下文,子类中需要传递上下文,使用this.instance函数创建携带上下文的实例
* @author: feng.chen<feng.chen@yoho.cn>
* @date: 2017/04/14
*/
const _ = require('lodash');
class Context {
setContext(ctx) {
this.ctx = ctx;
}
instance(...args) {
if (args.length === 0) {
throw Error('实例化上下文参数错误');
}
const params = _.slice(args, 1, args.length);
const cls = new args[0](...params);
cls.setContext(this.ctx);
return cls;
}
}
module.exports = Context;