我正在從 angularjs 遷移到 angular。我已經做了很多,但我仍然堅持工廠和原型。Card 代表一張撲克牌。
function Card() {
this.remoteId = 0;
this.version = 0;
this.name = "";
this.stars = 0;
}
Card.prototype = {
getFromRemote: getFromRemote,
initFromRemote: initFromRemote,
updateFromCard: updateFromCard,
createImage: createImage,
};
return (Card);
}
現在我只是想知道如何遷移它,因為 Angular 中沒有更多的工廠了。我正在考慮使 Card 功能成為像角度教程https://angular.io/tutorial/toh-pt1中的卡介面。你認為這是個好主意還是我錯過了什么?任何幫助或想法將不勝感激!!!!
uj5u.com熱心網友回復:
您可以使用抽象類和建構式的組合:
abstract class獲得原型的功能。
初始值設定邏輯可以進入constructor.
游樂場鏈接
abstract class AbsCard {
abstract remoteId: number;
abstract version: number;
abstract name: string
abstract stars: number;
public initFromRemote(): void {
this.remoteId = 0;
}
public print() {
console.log(this);
}
}
class Card extends AbsCard {
public remoteId: number = 0;
version: number = 0;
name: string = '';
stars: number = 0;
public constructor() {
super();
/* other creation logic can come here */
}
}
let c = new Card();
c.print();
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/420638.html
標籤:
