有下面三段代码: 父类:
class BaseDao {
/**
* 子类构造传入对应的 Model 类
*
* @param Model
*/
constructor (Model) {
this.Model = Model
}
/**
* 使用 Model 的 静态方法 create() 添加 doc
*
* @param obj 构造实体的对象
* @returns {Promise}
*/
create (obj) {
return new Promise((resolve, reject) => {
let entity = new this.Model(obj)
this.Model.create(entity, (error, result) => {
if (error) {
console.log('create error--> ', error)
reject(error)
} else {
console.log('create result--> ', result)
resolve(result)
}
})
})
}
子类:
let BaseDao = require('./lib/baseDao')
let Usr = require('./usr')
class UsrDao extends BaseDao {
constructor () {
super(Usr)
}
}
var andy = new Usr({usrname: 'andy', pwd: '123456'})
var usrDao = new UsrDao()
usrDao.create(andy)
module.exports = UsrDao
model:
var {Schema} = require('mongoose')
var {mongoClient} = require('./lib/mongo')
var usrSchema = new Schema(
{
usrname: String,
pwd: {type: String, lowercase: true} // lowercase 都属于 setters
},
{
runSettersOnQuery: true // 查询时是否执行 setters
}
)
var Usr = mongoClient.model(`Usr`, usrSchema, 'usr')
module.exports = Usr
我的问题是:子类继承了父类,父类的构造方法中需要传入一个model,那么在子类中,super(Usr),这句代码是什么意思呢,是将Usr传入了父类还是构造了一个Usr类,还是发生了其它的什么事情?希望可以被解达。谢谢。