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()