【发布时间】:2018-02-06 00:54:30
【问题描述】:
这是我的模型类:
'use strict'
import MongoDb from 'database/mongodb'
export default class Model {
constructor (options) {
this.data = this.sanitize(options)
}
objectId (_id) {
// https://stackoverflow.com/questions/17545311/correct-way-to-search-for-mongodb-entries-by-id-in-node
const mongodb = new MongoDb()
const objectId = mongodb.objectId
return objectId(_id)
}
async db () {
const mongodb = new MongoDb()
const connection = await mongodb.connect()
return connection
}
sanitize (options) {
return options
}
async insert (options) {
//
}
async find (options) {
//
}
async remove (options) {
//
}
}
我有一个从它扩展的用户类:
'use strict'
import lodash from 'lodash'
import Model from 'model'
import schemas from './schemas'
export default class User extends Model {
constructor (options) {
super(options)
}
sanitize (options) {
let data = options || {}
let schema = schemas.user
let keys = lodash.keys(schema)
let defaults = lodash.defaults(data, schema)
let picked = lodash.pick(defaults, keys)
return picked
}
...
...
}
但是根据standardjs:
standard: Use JavaScript Standard Style (https://standardjs.com)
/var/www/html/.../user/models/user.js:8:3: Useless constructor.
为什么我的constructor 是Useless?
据我了解,我必须在我的扩展课程中使用super(),即使我还没有完全理解它。是不是我用错了?
有什么想法吗?
编辑:
如果我省略扩展类中的constructor,我会得到这个错误:
Syntax Error: missing super() call in constructor
【问题讨论】:
标签: javascript class ecmascript-6 extends