Class in JavaScript with a constructor (Converting from C#)
<p>I have following C# code and is it possible to do an easy convert in to JavaScript? I need this to run 100% in the browser.</p>

<p>As I do understand enum does not exist and can be replaced with a strings instead.</p>

<p>In short I have a class Deck witch holds an array of Card, the class Card does have a few properties including rank, symbol etc. and also a shuffle function.</p>

<p>I don't expect anyone to convert all my code here but give me pointer how something similar can be done.</p>

<pre><code>public enum Suit
{
    Club,
    Diamond,
    Heart,
    Spade
};

public class Card
    {
    public Suit suit;
    public int value;
    public string text;
    public int HCP;

    public Card()
    {
    }

    public Card(Suit _suit, int _value, int _HCP, string _text)
    {
        suit = _suit;
        value = _value;
        HCP = _HCP;
        text = _text;
    }
};

public class Deck
{
    public Card[] Cards = new Card[52];
    public Deck()
    {
        Cards[0] = new Card(Suit.Spade, 14, 4, "A");
        Cards[1] = new Card(Suit.Spade, 13, 3, "K");
        Cards[2] = new Card(Suit.Spade, 12, 2, "Q");
        Cards[3] = new Card(Suit.Spade, 11, 1, "J");
        Cards[4] = new Card(Suit.Spade, 10, 0, "T");
        Cards[5] = new Card(Suit.Spade, 9, 0, "9");
        Cards[6] = new Card(Suit.Spade, 8, 0, "8");
        Cards[7] = new Card(Suit.Spade, 7, 0, "7");
        Cards[8] = new Card(Suit.Spade, 6, 0, "6");
        Cards[9] = new Card(Suit.Spade, 5, 0, "5");
        Cards[10] = new Card(Suit.Spade, 4, 0, "4");
        Cards[11] = new Card(Suit.Spade, 3, 0, "3");
        Cards[12] = new Card(Suit.Spade, 2, 0, "2");

        Cards[13] = new Card(Suit.Heart, 14, 4, "A");
        Cards[14] = new Card(Suit.Heart, 13, 3, "K");
        Cards[15] = new Card(Suit.Heart, 12, 2, "Q");
        Cards[16] = new Card(Suit.Heart, 11, 1, "J");
        Cards[17] = new Card(Suit.Heart, 10, 0, "T");
        Cards[18] = new Card(Suit.Heart, 9, 0, "9");
        Cards[19] = new Card(Suit.Heart, 8, 0, "8");
        Cards[20] = new Card(Suit.Heart, 7, 0, "7");
        Cards[21] = new Card(Suit.Heart, 6, 0, "6");
        Cards[22] = new Card(Suit.Heart, 5, 0, "5");
        Cards[23] = new Card(Suit.Heart, 4, 0, "4");
        Cards[24] = new Card(Suit.Heart, 3, 0, "3");
        Cards[25] = new Card(Suit.Heart, 2, 0, "2");

        Cards[26] = new Card(Suit.Diamond, 14, 4, "A");
        Cards[27] = new Card(Suit.Diamond, 13, 3, "K");
        Cards[28] = new Card(Suit.Diamond, 12, 2, "Q");
        Cards[29] = new Card(Suit.Diamond, 11, 1, "J");
        Cards[30] = new Card(Suit.Diamond, 10, 0, "T");
        Cards[31] = new Card(Suit.Diamond, 9, 0, "9");
        Cards[32] = new Card(Suit.Diamond, 8, 0, "8");
        Cards[33] = new Card(Suit.Diamond, 7, 0, "7");
        Cards[34] = new Card(Suit.Diamond, 6, 0, "6");
        Cards[35] = new Card(Suit.Diamond, 5, 0, "5");
        Cards[36] = new Card(Suit.Diamond, 4, 0, "4");
        Cards[37] = new Card(Suit.Diamond, 3, 0, "3");
        Cards[38] = new Card(Suit.Diamond, 2, 0, "2");

        Cards[39] = new Card(Suit.Club, 14, 4, "A");
        Cards[40] = new Card(Suit.Club, 13, 3, "K");
        Cards[41] = new Card(Suit.Club, 12, 2, "Q");
        Cards[42] = new Card(Suit.Club, 11, 1, "J");
        Cards[43] = new Card(Suit.Club, 10, 0, "T");
        Cards[44] = new Card(Suit.Club, 9, 0, "9");
        Cards[45] = new Card(Suit.Club, 8, 0, "8");
        Cards[46] = new Card(Suit.Club, 7, 0, "7");
        Cards[47] = new Card(Suit.Club, 6, 0, "6");
        Cards[48] = new Card(Suit.Club, 5, 0, "5");
        Cards[49] = new Card(Suit.Club, 4, 0, "4");
        Cards[50] = new Card(Suit.Club, 3, 0, "3");
        Cards[51] = new Card(Suit.Club, 2, 0, "2");
    }
    public void Shuffle(Random r)
    {
        for (int n = Cards.Length - 1; n &gt; 0; --n)
        {
            int k = r.Next(n + 1);
            Card temp = Cards[n];
            Cards[n] = Cards[k];
            Cards[k] = temp;
        }
    }
};
</code></pre>
