var a = { name: "Sam" };
var b = { name: "Tom" };
var o = {};
o[a] = 1;
o[b] = 2;
console.log(o)
console.log(a.toString())
console.log(o[a])
```
结果是:{[object Object]: 2} '[object Object]' 2
原因:o[a]、o[b]赋值的时候,a、b不是字符串,所以要调用它们的toString()方法来返回这个键值
对象自身没有定义toString方法,就在原型链上找到Object类型的toString方法来执行,
它的返回值是固值:‘[object Object]’