这里的缺陷我猜是因为new出来的对象 自身除了prototype外 还有比如挂载在new对象之上的属性和方法 比如this.one = 1 this.fn = function foo(){} 等 这些属性和方法也会"附着"在Student.prototype(视频里)这个对象里面 也就是说Student.prototype里面将不仅仅有__proto__这个属性(指针) 还有其他的"附着"物
注意事项,关系到不同环境不要用instanceof
instanceof:右边的构造器的prototype属性是否出现在左边的原型链上。
原型的原型
左边的__proto__ 等于右边函数的Prototype
instanceof:左对象右函数构造器(又必须为函数不然报错),判断左边的对象的原型链上有没有右边的构造器的prototype。
不同而window或iframe间的对象类型检测不能使用instanceof!
instanceof 是判断左边对象的原型链上有没有右边函数的prototype属性
new Object() instanceof Array === false
[1,2] instanceof Array === true
右边构造器的prototype属性是否出现在左边的对象的原型链上
右边必须是函数(不是函数会报错),左边是对象(不是的话,直接返回false)
!!!不同window或iframe间的对象类型检测不能使用instanceof
原型链上有的,用instanceof就能返回true
instanceof : 左边是一个对象,右边是一个函数。查看左边的对象,是否在右边函数的原型链中。
instanceof右边必须是一个函数对象或函数构造器,比较方法是从左边对象的原型链上查找是否含有右边的原型