js Object和Array 原型与继承

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.4k
2 个回答

首先通俗的讲一切皆为对象,当你用instanceof操作符去判断是返回值会是true ,但是你typeof array是会是数组

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题