Я пытаюсь динамически установить функцию прототипа, используя new Function(...)
. Я попробовал следующее (ES6):Установить прототип Javascript динамически
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();
}
}
использования: У меня есть микро-сервис, который хранит алгоритмы как ресурс, который затем будет принят в тренажере, который сражается 2 алгоритма.
при попытке это, this.prototype
есть undefined
. Единственная причина, по которой я могу думать, что это может быть так, потому что объект AI
не полностью определен до завершения выполнения конструктора.
Как я могу установить функцию прототипа, как я пытаюсь здесь?
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);
Планируете ли вы использовать AI только для одного экземпляра объекта? – trincot
Я добавил к моему правлению пример использования, а также обновление. – frankgreco
Будет один экземпляр AI за игру, и в симуляции будет много игр. – frankgreco