📅  最后修改于: 2023-12-03 15:01:38.338000             🧑  作者: Mango
Object.isPrototypeOf()
是一个Javascript Object类型的原型方法,用于判断一个对象是否是另一个对象的原型。当一个对象通过[[Prototype]]链继承自该原型时,Object.isPrototypeOf()
方法会返回true,否则返回false。该方法返回一个布尔值。
Object.isPrototypeOf(obj)
obj
:用于测试的对象
const Animal = {
name: 'animal',
eat() {
console.log('The animal is eating.');
}
};
const Dog = Object.create(Animal);
console.log(Animal.isPrototypeOf(Dog)); // true
console.log(Object.prototype.isPrototypeOf(Dog)); // true
console.log(Function.prototype.isPrototypeOf(obj => {})); // true
在上面的示例中,我们定义了一个 Animal
对象,包含了 name
和 eat()
方法。我们又通过 Object.create()
方法创建了一个 Dog
对象,并将 Animal
对象设为了它的原型。
接下来,我们使用 isPrototypeOf()
方法测试了 Animal
、Object
和 Function
对象是否为 Dog
对象的原型,并分别打印了结果。由于 Animal
对象是 Dog
对象的原型,所以第一个测试返回 true。Object
和 Function
对象同样也位于 Object.prototype
的原型链上,所以它们也都是 Dog
对象的原型。
isPrototypeOf()
的参数必须是一个对象(null 除外)isPrototypeOf()
的参数的原型,就返回 true。isPrototypeOf()
的参数不是一个对象,会引发一个 TypeError。