var arr = [];
arr.toString == Object.prototype.toString //false
arr.toString===Array.prototype.toString
true
因为这个是数组啊。。。你可以认为数组继承了对象的原型链但是对某些函数进行了改写,那么自然就不能相对了。同理,你对一个对象tostring跟一个数组tostring能一样吗
虽然 Array
继承 Object
的toString
方法了,但是 一般都是结合本身的特性进行重写的
var arr = [];
var reg = /sdsd/;
Object.prototype.toString.call(arr); //"[object Array]"
Object.prototype.toString.call("sss");//"[object String]"
Object.prototype.toString.call("reg");//"[object RegExp]"
[].constructor=ƒ Array() { [native code] }
{}.constructor=ƒ Object() { [native code] }
构造器不同,原型不同,方法也不同
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
5 回答2k 阅读
3 回答1.5k 阅读✓ 已解决
Array 重写了toString
[].toString === Array.prototype.toString