javascript - Get key of an object when the key is an object -
let obj1 = { 1: 1 }; let obj2 = {}; obj2[obj1] = 2; let keys = object.keys(obj2); // first (let key of keys) { console.log(key) // [object object] } (let prop in obj2) { console.log(prop) // [object object] } let key = keys[0]; // second console.log(typeof key); // string console.log(json.stringify(key) === json.stringify(obj1)); // false // thirth console.log(obj2['[object object]']); // 2 obj2[{}] = 3; // fourth console.log(obj2['[object object]']); // 3 console.log(obj2[obj1]); // 3 i have 4 questions:
1/. in first: there way object
{ 1: 1 } instead of [object object]?
2/. in second: why getting string when trying type of object (not object)?
3/. in thirth: key of object object. so, why can assign via string?
4/. in fourth: after adding object obj2, obj1 has been overridden although {} different obj1 (not duplicate key). why?
javascript objects can use strings keys. thus, obj2[obj1] = 2 equivalent obj2[obj1.tostring()] = 2; , obj1.tostring() "[object object]". thus, obj2 is, in fact, { "[object object]": 2 }.
you can't isn't there.
because isn't object.
no, isn't.
{}.tostring()same({ 1: 1 }).tostring(), so... can see leads.
Comments
Post a Comment