首页 > 解决方案 > 为什么在确定对象类型时 instanceof 运算符比构造函数属性更安全?

问题描述

当作者说:

构造函数属性最初旨在用于识别对象类型。但是,instanceof 运算符被认为是一种更安全的确定类型的方法 在此处输入图像描述

你能解释一下不使用constructoroverinstanceof来确定对象类型背后的顾虑是什么吗?

没有区别的传统示例可能像:

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

谢谢...

标签: javascriptoopconstructorinstanceof

解决方案


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);

子类化有所作为


推荐阅读