在JavaScript中,判断一个变量的类型往往会使用typeof运算符,再使用typeof运算符是采用引用类型存储值会‘出现一个问题,无论引用
的是什么类型的对象,他都返回‘object’。这就需要用到instanceof来检测某个对象是不是另一个对象的实例。
另外,更重要得一点是instanceof可以在继承关系中用来判断一个实例是否属于它的父类型。
列如:
function Foo(){}
Foo.prototype = new Aoo();//javascript原型继承
var foo = new Foo();
console.log(foo instanceof Foo) //true
console.log(foo instanceof Aoo) //true
上面代码中是判断一层继承关系中的父类,在多层继承关系中,instanceof运算符同样适用。
又如:
console.log(Object instanceof Object); //true
console.log(Function isntanceof Function); //true
console.log(String instanceof String);//false
console.log(Function instanceof Object);//true
console.log(Foo instanceof Function);//true
console.log(Foo instanceof Foo);//false