Ich versuche, eine Prototypfunktion dynamisch unter Verwendung new Function(...)
zu setzen. Ich habe die folgenden (es6) versucht:Javascript-Prototyp dynamisch setzen
export default class AI {
constructor(algObj, player) {
this.player = player;
this.algObj = algObj;
//create the shoot and placeShips prototypes form the this.algObj property
this.prototype.initialize = new Function(this.algObj.initialize);
this.prototype.shoot = new Function(this.algObj.shoot);
this.prototype.placeShips = new Function(this.algObj.placeShips);
this.initialize();
}
}
USE CASE: Ich habe eine Mikro-Service haben, die Algorithmen wie die Ressource speichert, die dann in einen Simulator übergeben werden, die zwei Algorithmen Schlachten.
Wenn ich dies versuche, ist this.prototype
undefined
. Der einzige Grund, warum ich denken könnte, dass dies der Fall ist, ist, dass das Objekt AI
erst nach der Ausführung des Konstruktors vollständig definiert ist.
Wie würde ich eine Prototypfunktion einstellen, wie ich hier versuche?
UPDATE:
this.__proto__.initialize = new Function(this.algObj.initialize);
this.__proto__.shoot = new Function(this.algObj.shoot);
this.__proto__.placeShips = new Function(this.algObj.placeShips);
Planen Sie, AI nur für eine Objektinstanz zu verwenden? – trincot
Ich habe einen Bearbeitungsfall zu meiner Bearbeitung hinzugefügt und ein Update hinzugefügt. – frankgreco
Es wird pro Spiel eine KI-Instanz geben und es wird mehrere Spiele pro Simulation geben. – frankgreco