javascript - 此代码片段中的“模型”类的意图是什么?
问题描述
我正在阅读其他人编写的代码库。在下面的代码片段中定义了一个Model
类,但我不明白为什么作者定义了这个类。除了使用 plain 来定义这个类的意图是什么Object
?这里的模式是什么?非常感谢!
const models = {}
export default class Model {
constructor() {
this._type = this.constructor.name
if (!models[this._type]) {
models[this._type] = this.constructor.prototype
}
}
}
const model = object => {
if (!object) {
return object
}
if (object._type && object._type != object.constructor.name) {
object.__proto__ = models[object._type]
}
(typeof object == "object") && Object.values(object).forEach(v => {
model(v)
})
return object
}
它的用法:
class xxxModel extends Model { ... }
.
更新
并且经常出现以下使用模式:
const refreshData = function (...args) {
// do something to update UI.
const data = args[0]
Object.keys(data).forEach(key => model(this.data[key]))
}
解决方案
推荐阅读
- python-3.x - 将一年的数据框转换为 365 列的数据框(按天计算)
- git - 我现在已经在 github 上更新了我的文件,如何更新我网站上的文件?
- c# - 如何使用 c# 中的键在控制台应用程序中导航?
- php - 为什么我不能用 composer 使用另一个 fork
- matlab - 无法加载消息目录“SimulinkCoderApp:codeperspective”。请检查文件位置和格式
- yaml - 如何在 Terraform 中使用 yaml 文件?
- windows - mongodb中的此错误“在NetworkInterface启动期间未配置TransportLayer”是什么意思?
- c# - c#中的动态绑定,我们不能使用编译数据绑定(x:bind)
- javascript - API在邮递员中工作正常,但在反应的前端部分却不行
- ios - 如何创建一个像 Apples 一样的 Popover ViewController