📜  JavaScript Object.prototype.isPrototypeOf() 方法(1)

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

JavaScript Object.prototype.isPrototypeOf() 方法

JavaScript 中的 Object.prototype.isPrototypeOf() 方法用于检查一个对象是否存在于另一个对象的原型链中。

语法
obj.isPrototypeOf(object)

参数:

  • object:必需。要检查的对象。

返回值:

如果 obj 存在于 object 的原型链中,则返回 true,否则返回 false

示例

下面的示例演示了如何使用 Object.prototype.isPrototypeOf() 方法来检查一个对象是否存在于另一个对象的原型链中。

// 定义构造函数 Person
function Person(name) {
  this.name = name;
}

// 创建一个对象 john,并将其原型设置为 Person
const john = new Person('John');

// 检查 john 是否存在于 Person 的原型链中
console.log(Person.prototype.isPrototypeOf(john));  // true

// 检查 Object 是否存在于 Person 的原型链中
console.log(Object.prototype.isPrototypeOf(john));  // true

// 创建一个普通对象
const obj = {};

// 检查 obj 是否存在于 Person 的原型链中
console.log(Person.prototype.isPrototypeOf(obj));  // false

// 检查 obj 是否存在于 Object 的原型链中
console.log(Object.prototype.isPrototypeOf(obj));  // true

在上面的示例中,首先定义了一个构造函数 Person,并创建了一个对象 john,并将其原型设置为 Person。然后,分别使用 Person.prototype.isPrototypeOf() 和 Object.prototype.isPrototypeOf() 方法检查 john 和一个普通对象 obj 是否存在于 Person 和 Object 的原型链中。

注意事项
  • Object.prototype.isPrototypeOf() 方法可用于检查一个类型的对象是否存在于另一个类型的原型链中。例如,检查 Array 是否存在于 Object 的原型链中:
console.log(Object.prototype.isPrototypeOf(Array.prototype)); // true
  • Object.prototype.isPrototypeOf() 方法不会检查传递给它的参数是否为对象。因此,如果传递的参数不是一个有效的对象,则会抛出 TypeError 错误。