你的位置:首页 > Java教程

[Java教程]instanceof 和 构造函数


1. intanceof 运算符

  instanceof 运算符返回一个布尔值,表示指定对象是否为某个构造函数的实例。

  

 

  instanceof左边是实例对象 右边是构造函数。它的运算实质是检查右边构建函数的原型对象,是否在左边对象的原型链上。因此,下面两种写法是等价的。

  Vehicle.prototype.isPrototypeOf(v);   

  instanceof的原理是检查原型链,对于那些不存在原型链的对象,就无法判断。

  Object.create(null) instanceof Object // false
 上面这种继承null的特殊情况,JavaScript之中,只要是对象,就有对应的构造函数。因此,instanceof运算符的一个用处,是判断值的类型
  
  
instanceof运算符只能用于对象,不适用原始类型的值