@SixtyNice
Начинающий разработчик

Как получить разные свойства одно и того же объекта при вызове двух разных функций?

Всем привет, сейчас я пытаюсь написать игру BlackJack на javacript и и у меня есть 3 функции: Одна которая получает случайный объект из массива, вторая, которая выводит его свойство pic(картинку) и 3 функция, которая выдает его свойство point. Эти функции работают, но проблема что последние две ссылаются каждый раз на первую по новому, и в результате картинка не соответствует ее point, были мысли записать значение первой карты в переменную, но не получилось, я новичок просто вот код:
function GetCard()
{
    var cards=[
        sixC,
        sixD,
        sixH,
        sixS,
        sevenC,
        sevenD,
        sevenH,
        sevenS,
        eightC,
        eightD,
        eightH,
        eightS,
        nineC,
        nineD,
        nineH,
        nineS,
        tenC,
        tenD,
        tenH,
        tenS,
        JacketC,
        JacketD,
        JacketH,
        JacketS,];

      
       var i= Rnd(0,cards.length-1)

    return (cards[i]);
    
}

    function GetPic(){
        return GetCard().pic;
    }
function GetPoint(){
    return GetCard().point;
            
}
    console.log(GetPoint());
// Show the cards in the display
{
    var pc = document.getElementById("cardDealer1");
    pc.innerHTML="<img style='width:115px; position:absolute;margin-top:10px;margin-left:10px; height=300px' src=" + GetPic()+ ">";
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
пара примитивных способов
1)
function GetPic(card){ return card.pic; }
function GetPoint(card){ return card.point; }

var card = GetCard();
var point = GetPoint(card);
var pic = GetPic(card);


2)
var card = GetCard();
var point = card.point;
var pic = card.pic;


3)
function GetCard()
{
    var cards=[
        sixC,
        sixD,
        sixH,
        sixS,
        sevenC,
        sevenD,
        sevenH,
        sevenS,
        eightC,
        eightD,
        eightH,
        eightS,
        nineC,
        nineD,
        nineH,
        nineS,
        tenC,
        tenD,
        tenH,
        tenS,
        JacketC,
        JacketD,
        JacketH,
        JacketS,];

      
       var i= Rnd(0,cards.length-1)
       var card = cards[i];
    return {
        getPic: function(){return card.pic;},
        getPoint: function(){return card.point;},
    };
    
}

var card = GetCard();
var point = card.getPoint();
var pic = card.getPic();


в общем как угодно, не хватает конечно условий задачи, мб у тебя там поля приватные или еще что
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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