[英]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
一個Vect
和DVect
,如果我通過DVect
,我希望返回一個Vect
那么,在 javascript 中是否可能?
嘗試 JS 中幾乎每個 object 上的.constructor
屬性:
const calcFunc = (inst /*: Vect|DVect */) => {
let constructorParams = //...
return new inst.constructor(...constructorParams)
}
(極端情況:由Object.create(null)
創建的對象將沒有.constructor
屬性。但是通過執行new Vect
、 new DVect
、 new
任何class {...}
創建的對象都應該有一個.constructor
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.