本文主要是介绍Object.prototype.isPrototypeOf与instanceof的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
相同点
Object.prototype.isPrototypeOf 与 instanceof 都是判断目标对象是否在另一个对象的原型链上的方法,都会在另一个对象的原型链上往上查找
不同点
写法:
Object.prototype.isPrototypeOf()
function foo(){} // 定义函数
foo.prototype = {a: 1
}; // 编辑函数的原型对象
let con = new foo(); // 创建对象实例
console.log(con.a);
//打印的是1,说明实例对象继承了foo函数的属性,那么foo函数自然也在con实例对象的原型链上了
console.log(foo.prototype.isPrototypeOf(con)); // true
console.log(Object.prototype.isPrototypeOf(con)); // true 对象原型链上都存在Object对象
instanceof
function foo(){} // 定义函数
let con = new foo(); //创建对象实例
console.log(con instanceof foo); // true
console.log(con instanceof Object); // true 对象原型链上都存在Object对象
instanceof会自动取出foo函数对象的原型,检测其是否在con对象实例的原型链上,而isPrototypeOf则需要以其原型作为参数,但是两者作用无异
这篇关于Object.prototype.isPrototypeOf与instanceof的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!