簡體   English   中英

javascript 從 class 實例訪問 class 工廠

[英]javascript access class factory from class instance

是否可以從同一個實例訪問創建當前實例的工廠?

例如:

class Vect {}
class DVect extends Vect{}

const calcFunc = (inst:Vect|DVect) =>{
  let constructorParams = ...
  return new inst.Factory(...constructorParams)
  //note - Factory is not a real method
}

console.log(calcFunc(new Vect))
// will log a Vect instance

console.log(calcFunc(new DVect))
// will log a DVect instance


在這里,如果我傳遞給calcFunc一個VectDVect ,如果我通過DVect ,我希望返回一個Vect

那么,在 javascript 中是否可能?

嘗試 JS 中幾乎每個 object 上的.constructor屬性:

const calcFunc = (inst /*: Vect|DVect */) => {
  let constructorParams = //...
  return new inst.constructor(...constructorParams)
}

(極端情況:由Object.create(null)創建的對象將沒有.constructor屬性。但是通過執行new Vectnew DVectnew任何class {...}創建的對象都應該有一個.constructor 。)

暫無
暫無

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

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