簡體   English   中英

流javascript類屬性被未定義覆蓋

[英]Flow javascript class properties get overwritten with undefined

我有兩節課

export class Model {
_id: ID

  constructor(arg : ID | string | Object) {
   if (typeof arg === 'object') this.loadObject
 }


  loadObject(obj: Object) {
    Object.assign(this, obj)
    // using a for loop to assign keys does not work with flow
  }
}

export class User extends Model {
_id: ID
username: string
//...other properties
}

當我調用new Model(userObject)所有屬性都已定義。 但是,當我調用new User(userObject)僅定義了一些屬性,而有些則未定義。 為什么會發生這種情況,我該如何解決?

您忘記了調用this.loadObject而需要在Userconstructor調用super

嘗試這個:

export class Model {
  _id: ID

  constructor(arg: ID | string | Object) {
    if (typeof arg === 'object') this.loadObject(arg)
  }

  loadObject(obj: Object) {
    Object.assign(this, obj)
  }
}

export class User extends Model {
  _id: ID
  username: string

  constructor(arg) {
    super(arg)
  }
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM