auramacker
@auramacker
Занимаюсь веб-разработкой.

Как с помощью конструктора создать его же свойство?

Здравствуйте! Пытаюсь создать игру. Появился вопрос: как правильно создать свойство у объекта игрока, которое будет зависеть от выбора пользователя? Делаю через конструктор:

function СreatePlayer(name, skills, class){
this.name = name,
this.level = 1,
this.skills = skills,
this.inventory = (значение данного свойства должно зависеть от параметра "class")

Как лучше реализовать? Заранее благодарен!
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
GavriKos
@GavriKos
А class это что? Если строка или число - switch-case (лучше в отдельном методе, GetInventoryForClass). Если это класс (как единица ООП) - то у самого класса и делайте GetInventory. Второй вариант красивее и правильнее, по идее.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
muzikant777
@muzikant777
PHP/Vue разработчик
switch-case же.
Вопрос лишь в том, где Вы будете его размещать, в зависимости от требований к архитектуре. Что из себя представляют сущности class и inventory?
Если inventory - объект, то логично сделать фабрику.
Ответ написан
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Как выше уже писали, createPlayer не должна быть игроком, а должна быть фабрикой - т.е. просто создавать игрока. что-то типа
class BasePlayer {
  
}

class PlayerWithRole extends BasePlayer {
  constructor(properties) {
    super(properties);
  }
}

let playerFactory = function (role, properties) {
  let roles = {
    someRole: PlayerWithRole
  }
  return new roles[role](properties);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы