Reputation: 484
I was given a short javascript code in an interview to give the output of that but I was not sure what will be the output of that. He creates a var object
and assigns objects as indexes of that object using the array data structure. I did console that code after the interview but still do not understand how it is showing the output.
Here is the code
var a = {};
b = { key: 'b'};
c = { key: 'c'};
a[b] = 123;
a[c] = 456;
console.log(a[b]); //what is the output of this console statement and explain why
Can anyone explain with javascript logic behind the output it shows? Thanks in advance!
Upvotes: 2
Views: 88
Reputation: 178285
The object used as key's toString is [object Object]
and that is what is used each time
var a = {};
b = { key: 'b'};
c = { key: 'c'};
a[b] = 123; // sets a["[object Object]"]
console.log(b,a[b])
a[c] = 456; // ALSO sets a["[object Object]"]
console.log(b,a[b])
console.log(Object.keys(a))
console.log(a[b]);
console.log(a["[object Object]"]);
Upvotes: 4
Reputation: 386680
You could have a look to the object a
, where you see the stringed object (with toString()
)
[object Object]
as accessor.
Objects can have only strings as properties and with the latest Symbol
, it could be this one, too.
var a = {};
b = { key: 'b'};
c = { key: 'c'};
a[b] = 123;
a[c] = 456;
console.log(a[b]); //what is the output of this console statement and explain why
console.log(a);
Upvotes: 1