js instanceof关键字的作用

在JavaScript中,我们可以使用instanceof来检查一个对象是否是某个特定类型的实例。

通俗来讲,就是检查对象是不是从某个特定的构造函数创建的。

我们来看一个例子:

var Foo = function(){};
var bar = new Foo();
console.log(bar instanceof Foo); // true

Foo这个变量,开头是大写,而且还是个函数,所以它是“构造函数”。

然后我们使用new关键字来实例化构造函数,就有了bar。

bar instanceof Foo是来检测bar是不是Foo实例化来的,很显然就是的,所以结果是true。

如果你对原型链相关的知识比较熟悉的话,你就知道,构造函数Foo的prototype属性是在实例对象bar的原型链上的。

原型链