var a = {n:2};
var b = {m:3};
var obj = {};
obj[a] = 4;
obj[b] = 5;
//key 一定是字符串
//那么a.toString() = '[object Object]' ,b同理
//即obj['[object Object]']
console.log(a.toString())//[object Object]
console.log(b.toString())//[object Object]
console.log(obj[a]) //5
js-对象赋值小细节
本文深入探讨了JavaScript中使用对象作为键值时的行为,揭示了当对象作为对象属性键时,其toString()方法返回的'[object Object]'成为键名的原理。通过实例展示了即使两个不同对象的属性值相同时,它们的toString()方法返回值相同,导致在对象中作为键名时可能出现的意料之外的结果。
摘要由CSDN通过智能技术生成