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的类型?
因为
Array.prototype//[] 也是数组
Little known fact: Array.prototype itself is an Array: