首页 > 解决方案 > 此代码片段中的“模型”类的意图是什么?

问题描述

我正在阅读其他人编写的代码库。在下面的代码片段中定义了一个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]))
}

标签: javascript

解决方案


推荐阅读