1.用typeof不能判断一个对象变量,因为null和数组的结果也是object。
2.xxx.toString方法返回反映这个对象的字符串。
3.不能直接使用obj.toString()的原因,因为toString为Object的原型方法,而Array、Function等类型作为Object的实例,都重写了toString方法。不用的对象类型调用toString方法时,根据原型链的知识,调用的是对应的重写之后的toString方法(Function类型返回内容为函数体的字符串,Array类型返回元素组成的字符串),而不会去调用Object上原型toString方法。
4.通过call将Array的this上下文切换到Object,从而调用了Object.prototype.toString()。