var Test=function(){}; var n= new Test(); var arr=[1,2,3];alert(Object.prototype.toString.call(Test.prototype));//object Objectalert(Object.prototype.toString.call(Test));//object Function上面这个两条检测我觉得挺好懂,但是下面的。。。alert(Object.prototype.toString.call(Number.prototype));//object Number ??alert(Object.prototype.toString.call(Array.prototype));//object Array ??alert(Object.prototype.toString.call(Boolean.prototype));//object Boolean ??alert(Object.prototype.toString.call(Function.prototype));//object Function ??////////////alert(Object.prototype.toString.call(arr.__proto__));//Arrayalert(Object.prototype.toString.call(n.__proto__));//Object{}.toString()方法可以用来检测基本包装类型,但是我并没有Object.prototype.toString.call(Array),我传的都是X.prototype啊 ,prototype不是一个Object么?为什么结果都是其consturctor的类型?
1 回答

绝地无双
TA贡献1946条经验 获得超4个赞
因为Array.prototype//[] 也是数组
[].__proto__ === Array.prototype ar.__proto__.__proto__`没有此方法。 Array.isArray(Array.prototype)// true
Little known fact: Array.prototype itself is an Array:
添加回答
举报
0/150
提交
取消