var arr=new Array(1,2,3);
alert(arr instanceof Array); //true
alert(arr instanceof Object); //true
alert(Array instanceof Object); //true
儿子认爹也认爷爷
alert(arr instanceof Array); //true
alert(Array instanceof Function); //true
alert(arr instanceof Function); //false
儿子认爹不认爷爷
alert(Object instanceof Function); //true
alert(Function instanceof Object); //true
兄弟俩互相喊爹
alert(Function instanceof Function); //true
alert(Object instanceof Object); //true
又当爹又当儿
-------------------------------
好吧,有人说我无的放矢,我就说说我的疑惑
其实我主要是想吐槽 “认爹不认爷爷”那儿。
arr 是 Array的实例, Array是构造函数而构造函数本身也是个普通函数,而js里函数又都是Function的实例,所以按照原型链的原理 arr instanceof Function 应该是true... 但是实际却是false...
话又说回来,arr 本来就是个数组而已,返回false也并不难理解...
@Shihang Wei 童鞋也说了arr的原型链上没有等于Function.prototype的对象,所以返回false
但是我还是理解不了为什么arr顺着原型链往上推的话,到Funciton这儿会断了...
很喜欢和 @Shihang Wei 这样认真回复的童鞋讨论...
嗯,就这样...
愿意给小弟解惑的就认真评论下,别不负责任的丢下一句话就走了- -!