Array.prototype.isPrototypeOf
和Array.isPrototypeOf
是JavaScript中的两个方法,用于检查一个对象是否是数组的原型。
区别如下:
Array.prototype.isPrototypeOf
是一个实例方法,需要一个数组实例来调用。它用于检查当前对象的原型链中是否包含Array.prototype
。如果当前对象的原型链中存在Array.prototype
,则返回true
,否则返回false
。示例代码:
const arr = [];
console.log(Array.prototype.isPrototypeOf(arr)); // true
const obj = {};
console.log(Array.prototype.isPrototypeOf(obj)); // false
Array.isPrototypeOf
是一个静态方法,直接通过Array
对象来调用。它用于检查指定的对象是否为数组类型。如果指定的对象是一个数组,返回true
,否则返回false
。示例代码:
const arr = [];
console.log(Array.isPrototypeOf(arr)); // true
const obj = {};
console.log(Array.isPrototypeOf(obj)); // false
需要注意的是,Array.isPrototypeOf
只能检查直接的数组实例,而不能检查其原型链上的对象。
总结来说,Array.prototype.isPrototypeOf
用于检查一个对象的原型链中是否包含Array.prototype
,而Array.isPrototypeOf
用于检查一个对象是否是数组类型。