Array.prototype.toString = function(){ console.log("我被重写了"); } var arr = [1,2,3]; arr.toString(); console.log(Object.prototype.toString.call(arr));数组的toString 被重写后直接调用数组的方法,会执行重写后的方法,而对象原型上的toString则不会被修改,我们知道Array也是对象,Array的方法可以来自对象 Object的继承,那么对象与数组的关系是什么呀?数组是对象的实例?还是什么?求大神帮忙分析下
2 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
javascript 没有类的概念,是基于原型的,所以Array 和 Object都是对象,Array算不上是Object的实例,只是Array原型链的继承
Array.prototype.__proto__ ===Object.prototype
var arr = [1,2,3]
arr instanceof Array //true
arr instanceof Object //true
typeof arr //'object' ,返回的是object
添加回答
举报
0/150
提交
取消