请教一个prototype的类型问题。tostring()检测

var Test=function(){};  var n= new Test();  var arr=[1,2,3];

alert(Object.prototype.toString.call(Test.prototype));//object Object

alert(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__));//Array
alert(Object.prototype.toString.call(n.__proto__));//Object


{}.toString()方法可以用来检测基本包装类型,但是我并没有Object.prototype.toString.call(Array),我传的都是X.prototype啊  ,prototype不是一个Object么?为什么结果都是其consturctor的类型?


慕标5832272
浏览 553回答 1
1回答

绝地无双

因为Array.prototype//[] 也是数组[].__proto__ === Array.prototype ar.__proto__.__proto__`没有此方法。 Array.isArray(Array.prototype)// trueLittle known fact: Array.prototype itself is an Array:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript