以下列代码为起点:
class SuperKlass {};
class SubKlass extends SuperKlass {};
const superKlass = new SuperKlass();
const subKlass = new SubKlass();
console.log(SuperKlass.isPrototypeOf(SubKlass));
console.log(SuperKlass.prototype.isPrototypeOf(subKlass));
console.log(SuperKlass.prototype.isPrototypeOf(SubKlass.prototype));
// true true true
这些查找是如何工作的?例如,方法的定义声明:
isPrototypeOf()方法检查一个对象是否存在于另一个对象的原型链中。
因此,对于第一个对象,SuperKlass.isPrototypeOf(SubKlass),SubKlass是我们正在检查的原型链的对象,以确定它是否存在于SuperKlass中。那么这到底是怎么回事呢?我试着在Chrome工具中调试它,并在第一个工具的试错中找到了答案:

当查找原型链时,它是使用__proto__还是.prototype?对另外两个人又有什么用?
https://stackoverflow.com/questions/71898096
复制相似问题