我只是无法理解,为什么在对象继承中“instanceof”无法将“子”对象评估为父原型的实例。例如:
function Parent(property) {
this.property = property;
}
function Child(property) {
Parent.call(property);
}
const child = new Child("");
console.log(child instanceof Child); // of course, true
console.log(child instanceof Parent); // false. But why???
至于类的继承(或者说JS中被认为是类的东西),情况就不同了:
class Parent {
constructor(property) {
this.property = property;
}
}
class Child extends Parent {
constructor(property) {
super(property);
}
}
const child = new Child("");
console.log(child instanceof Child); // true
console.log(child instanceof Parent); // also true!!!
造成这种差异的原因是什么?是否可以创建子对象,以便将它们正确地识别为其父原型的实例(无需求助于类)?
繁星coding
相关分类