instanceof运算符希望左操作数是一个对象,
右操作数标识对象的类,如果左侧的的对象是右侧类的实例,则表达式返回true,否则返回false
instanceof的右操作数应当是一个函数
var d = new Date()//创建一个新对象
d instanceof Date;//true d是由Date()创建的
d instanceof Object //计算结果为true,所有对象都是Object的实例
d instanceof Number //false
d instanceof String //false
var a = [1,2,3]
a instanceof Array;//true
a instanceof Object;//true
所有对象都是Object的实例
当通过instanceof 判断一个对象是否是一个类的实例的时候,这个判断也会包含父类的检测
如果instanceof的做操作数不是对象的话,instanceof返回false
如果右操作数不是函数,则抛出一个类型错误异常
如果想清楚了解instanceof运算符的工作机制,需要深刻的理解原型链