Array instanceof Array为false;let arr=[1,2,34] ;arr instanceof Array为true;Objeect instanceof Object为true的原理
时间: 2024-05-19 18:11:04 浏览: 86
JavaScript 判断判断某个对象是Object还是一个Array
instanceof 运算符用于检查一个对象是否是一个特定类型(或者是该类型的子类型)的实例。它的原理是基于原型链的。每个对象都有一个原型链,它是一个指向该对象父类的链。instanceof 运算符会检查该对象的原型链上是否存在指定的构造函数(或者其子类的构造函数),如果存在,则返回 true,否则返回 false。
例如,Array.prototype 是数组的原型,因此 Array instanceof Array 为 false,因为数组的原型不是数组本身。而 let arr=[1,2,34] ;arr instanceof Array 为 true,因为 arr 是数组类型的一个实例,其原型链上存在 Array.prototype。
同样地,Object.prototype 是所有对象的原型,因此 Object instanceof Object 为 true,因为 Object 是对象类型的一个实例,其原型链上存在 Object.prototype。
阅读全文