I’m a beginner to javascript and learning about objects. When I run the initializeDeck method I get a reference error saying values/suits is not defined. However, I think I’m using the this keyword appropriately to access the objects properties. It would be immensely helpful if someone could explain this to me.
const myDeck = { deck : [], suits : ["hearts", "diamonds", "spades", "clubs"], values : "2,3,4,5,6,7,8,9,10,J,Q,K,A", initializeDeck : function() { this.values = values; this.suits = suits; }} console.log(myDeck.initializeDeck());
Advertisement
Answer
Your problem is not this.values
. It is values
.
this.values
can be accessed inside the method. this
means the object myDeck
here.
Even if you do:
const myDeck = { deck : [], suits : ["hearts", "diamonds", "spades", "clubs"], values : "2,3,4,5,6,7,8,9,10,J,Q,K,A", initializeDeck : function() { this.values = values; this.suits = suits; } } console.log(values); //You will get an error here. values is not defined.
By the way you need not initialize. You are not using a constructor and this is a simple object literal. You can simply use myDeck.values
outside.