为什么instanceof运算符在确定对象类型时比构造函数属性更安全?

问题描述

当作者说时,我正在阅读“面向Web开发人员的专业javascript”:

constructor属性最初旨在用于标识对象类型。然而 instanceof运算符被认为是确定类型的更安全方式

enter image description here

您能解释为什么不使用constructor而不是instanceof来确定对象类型的原因是什么?

没有差异的传统示例可能是:

car instanceof Car  // true
car.constructor === Car // true

谢谢...

解决方法

class A {

}

class B extends A {

}

var x = new B();

console.log('instanceof A',x instanceof A);
console.log('instanceof B',x instanceof B);
console.log('constructor = A',x.constructor === A);
console.log('constructor = B',x.constructor === B);

子类化有所不同