这两种写法有区别吗?
import { Model } from 'sequelize'
class Book extends Model {
static fields (DataTypes) {
return {
title: DataTypes.STRING,
author: DataTypes.STRING
}
}
}
export default Book
import { Model } from 'sequelize'
class Book {
static fields (DataTypes) {
return {
title: DataTypes.STRING,
author: DataTypes.STRING
}
}
}
Reflect.setPrototypeOf(Book, Model)
export default Book
这两个导出来的 Book 类, 使用 init 方法(Model 内提供) 初始化都是可以成功的. 但使用 setPrototypeOf
这种方法, 在调用 findAll
时会查询出一堆空对象如下(findAll 不报错, 但有些方法如 create 会报错):
[
Book {},
Book {},
Book {}
]
如果使用 extends
甚至 extends
后再使用 setPrototypeOf
方法, 都可以正确查询出来结果.
求解疑…