js--输出及原因题目1

136 阅读1分钟
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]赋值的时候,ab不是字符串,所以要调用它们的toString()方法来返回这个键值
    对象自身没有定义toString方法,就在原型链上找到Object类型的toString方法来执行,
    它的返回值是固值:‘[object Object]