instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链
用法:
object instanceof Constructor
// 定义构造函数
function C(){}
var o = new C();
o instanceof C; // true,因为 Object.getPrototypeOf(o) === C.prototype
o instanceof Object; // true,因为 Object.prototype.isPrototypeOf(o) 返回 true
C.prototype instanceof Object // true,同上
C.prototype = {};
var o2 = new C();
o2 instanceof C; // true
o instanceof C; // false,C.prototype 指向了一个空对象,这个空对象不在 o 的原型链上.
C.prototype = Object.getPrototypeOf(o)
o instanceof C; //true
o2 instanceof C; // false
网友评论