https://jsfiddle.net/scotchhammer/mfa0x1j4/2/
В принципе приемлемое решение или не кошерно и всё делается совсем не так?
По крайней мере хотя бы работает (ну, не считая недоделанной деактивации кнопок)
JavaScript
ООП в Javascript на примере футбольного менеджера...
Как только карточек станет чуть больше двух, задолбаетесь прописывать условие для каждого) При клике на кнопку - на месте надо определить куда кликнули, в зависимости от этого решать что делать...
club = Spartak;
listToAppend = spartPlayers;
playerToBye();
Здесь создаются глобальные переменные, напрашивается вопрос, нафига) Если можно передавать параметры в функцию, а она их уже обработает...
buyPlayer( название_клуба, имя_игрока );
Она сама уже в зависимости от клуба - должна узнать, куда добавить игрока, и хватит ли у них денег. Соответственно, где-то вверху должны стоять объекты
let clubs = {
milan: {
money: 100500,
players: [],
playerContainer: document.querySelector...
}
}
let players = {
messi: {
price: 100500,
}
}
function createPlayerCard(name) {
...appendChild( playerCardHTML )
}
В процессе создания карточки можно к элементу добавить data-name= прописать имя игрока. При клике на кнопку - уже не будет проблемой достать имя из атрибута и использовать его в качестве ключа объекта... и достать оттуда всю остальную информацию. А какой клуб отмечен - можно менять onchange радиокнопок и хранить в какой-то переменной... чтобы при покупке не нужно было проверять.
club = Spartak;
listToAppend = spartPlayers;
playerToBye();
Здесь создаются глобальные переменные, напрашивается вопрос, нафига) Если можно передавать параметры в функцию, а она их уже обработает...
buyPlayer( название_клуба, имя_игрока );
Она сама уже в зависимости от клуба - должна узнать, куда добавить игрока, и хватит ли у них денег. Соответственно, где-то вверху должны стоять объекты
let clubs = {
milan: {
money: 100500,
players: [],
playerContainer: document.querySelector...
}
}
let players = {
messi: {
price: 100500,
}
}
function createPlayerCard(name) {
...appendChild( playerCardHTML )
}
В процессе создания карточки можно к элементу добавить data-name= прописать имя игрока. При клике на кнопку - уже не будет проблемой достать имя из атрибута и использовать его в качестве ключа объекта... и достать оттуда всю остальную информацию. А какой клуб отмечен - можно менять onchange радиокнопок и хранить в какой-то переменной... чтобы при покупке не нужно было проверять.
Когда объект хранит только публичные свойства и не имеет методов, абсолютно нет смысла создавать для него объектный тип (достаточно простого объекта). Так что, второй вариант. И это кстати очень типичная ошибка проектирования, она нормальна - понимание, где создание типов уместно, постепенно приходит с практикой.
А когда логика завязана на объектах элементов, имеет смысл расширять DOM-типы. Очень простой пример этого, с кодом, можно увидеть тут (имхо, вопрос по сути тот же самый, и ответы соотв.): https://ru.stackoverflow.com/a/1042045/288409
А когда логика завязана на объектах элементов, имеет смысл расширять DOM-типы. Очень простой пример этого, с кодом, можно увидеть тут (имхо, вопрос по сути тот же самый, и ответы соотв.): https://ru.stackoverflow.com/a/1042045/288409
Похожие вопросы
- Javascript ООП В чем суть кражи конструктора ?
- Можете привести примеры функции перемешивания массива в javascript? -_-
- Как составить синтаксис JavaScript для автозаполнения формы * (к примеру, анкеты) нажатием на кнопку ** ?
- Есть ли аналоги JavaScript?
- С чего начать учить JavaScript?
- Подскажите книги для изучения javascript? Хочу начать изучать веб программирование javascript подойтет для начала?
- Зачем нужен prototype в JavaScript?
- Тяжело ли выучить JavaScript?
- Как создать квадрат через JavaScript?
- JavaScript, зачем нужен второй await в данном примере