📜  Javascript Object.isPrototypeOf()(1)

📅  最后修改于: 2023-12-03 15:01:38.338000             🧑  作者: Mango

Javascript Object.isPrototypeOf()

介绍

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 对象,包含了 nameeat() 方法。我们又通过 Object.create() 方法创建了一个 Dog 对象,并将 Animal 对象设为了它的原型。

接下来,我们使用 isPrototypeOf() 方法测试了 AnimalObjectFunction 对象是否为 Dog 对象的原型,并分别打印了结果。由于 Animal 对象是 Dog 对象的原型,所以第一个测试返回 true。ObjectFunction 对象同样也位于 Object.prototype 的原型链上,所以它们也都是 Dog 对象的原型。

注意事项
  • isPrototypeOf() 的参数必须是一个对象(null 除外)
  • 如果一个对象原型链上有多个对象,只要其中任何一个对象是 isPrototypeOf() 的参数的原型,就返回 true。
  • 如果 isPrototypeOf() 的参数不是一个对象,会引发一个 TypeError。