我想知道是否有一種方法可以從 Javascript 類中參考“當前類”而不是按名稱的類。
例如:
class MyBase{
static makeNew(id){
const newInstance = new --currentClass--;// magic happens here
newInstance.id = id;
return newInstance;
}
}
class A extends MyBase{}
class B extends MyBase{}
const newA = A.makeNew(1);
const newB = B.makeNew(379);
有沒有辦法讓我這樣寫MyBase::makeNew,當它從A類呼叫時,它回傳一個新的實體A,但是當從B類呼叫時,它回傳一個新的實體B?
uj5u.com熱心網友回復:
由于呼叫簽名如下:
A.makeNew(1);
B.makeNew(379);
這可能看起來很熟悉——您可以使用它this來參考它被呼叫的物件。
class MyBase{
static makeNew(id){
const newInstance = new this();
newInstance.id = id;
return newInstance;
}
}
class A extends MyBase{}
class B extends MyBase{}
const newA = A.makeNew(1);
const newB = B.makeNew(379);
console.log(newA instanceof A);
console.log(newB instanceof B);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/404784.html
標籤:
