为什么toString和Object.prototype.toString.call不一样

1,088 阅读1分钟

我们可以使用Object.prototype.toString.call判断数据是否为纯JSON或数组 比如:

var arr=[aa,bb,cc];
arr.toString() //输出“aa,bb,cc”

但是

Object.prototype.toString.call(arr)//输出 "[object Array]"

toString()和Object.prototype.toString.call()是不一样的。
js中所有数据类型都继承了Object,Array也继承了Object,但是Array会重写从Object上继承过来的toString方法,所以Object.prototype.toString和数组上的toString是不同的两个方法。