Hit Me!

Codecademy > Code Year > Blackjack Part 2 > Hit Me! The only accepted answer breaks the Card class because the getters and setters are not accessible as methods of the instantiated object.

HTML

<p id="card1"></p>
<p id="card2"></p>

JavaScript

// Make your card constructor again here, but make sure to use private
// variables!
function Card(s,n) {
        var number = n;
        var suit = s;
        //getters
        var getNumber = function(){
            return number;
        };
        var getSuit = function(){
            return suit;
        };
}

// Make a deal function here.  It should return a new card with a suit
// that is a random number from 1 to 4, and a number that is a random
// number between 1 and 13
var deal = function(){
    var randNum = Math.floor(Math.random() * 13) + 1;
    var randSuit = Math.floor(Math.random() * 4) + 1;
    
    var mycard = new Card(randSuit, randNum);
    //the card
    return new Card(randSuit, randNum);
};

// examples of the deal function in action
var card1 = deal();
var card2 = deal();

card1Suit = (typeof card1.getSuit == "undefined") ? "undefined" : card1.getSuit();
card1Number = (typeof card1.getNumber == "undefined") ? "undefined" : card1.getNumber();
card2Suit = (typeof card2.getSuit == "undefined") ? "undefined" : card2.getSuit();
card2Number = (typeof card2.getNumber == "undefined") ? "undefined" : card2.getNumber();

p1 = document.getElementById('card1');
p2 = document.getElementById('card2');

p1.innerHTML = "Card 1 suit: " + card1Suit + "<br>Card 1 number: " + card1Number;
p2.innerHTML = "Card 2 suit: " + card2Suit() + "<br>Card 2 number: " + card2Number;