📜  Javascript Object.isPrototypeOf()

📅  最后修改于: 2020-09-27 06:52:36             🧑  作者: Mango

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

isPrototypeOf()方法的语法为:

prototypeObj.isPrototypeOf(object)

在这里, prototypeObj是一个对象。


isPrototypeOf()参数

isPrototypeOf()方法采用:

  • 对象 -对象,其原型链将被搜索。

从isPrototypeOf()返回值
  • 返回一个Boolean值,该Boolean指示调用对象是否位于指定对象的原型链中。

注意: isPrototypeOf()instanceof 运算符不同,因为isPrototypeOf()根据prototypeObj而不是prototypeObj.prototype来检查object原型链。


示例:使用Object.isPrototypeOf()
let obj = new Object();
console.log(Object.prototype.isPrototypeOf(obj)); // true
console.log(Function.prototype.isPrototypeOf(obj.toString)); // true

console.log(Array.prototype.isPrototypeOf([2, 4, 8])); // true

// define object
let Animal = {
  makeSound() {
    console.log(`${this.name}, ${this.sound}!`);
  },
};

// new object
function Dog(name) {
  this.name = name;
  this.sound = "bark";

  // setting prototype using setPrototypeOf()
  Object.setPrototypeOf(this, Animal);
}

dog1 = new Dog("Marcus");

console.log(Animal.isPrototypeOf(dog1)); // true

输出

true
true
true
true

推荐阅读: Javascript对象setPrototypeOf()