instanceof
運(yùn)算符用于檢查一個(gè)對(duì)象是否是某個(gè)構(gòu)造函數(shù)的實(shí)例。它的語(yǔ)法如下:
object instanceof constructor
其中,object
是要檢查的對(duì)象,constructor
是構(gòu)造函數(shù)。
instanceof
運(yùn)算符返回一個(gè)布爾值,如果object
是constructor
的實(shí)例,則返回true
,否則返回false
。
以下是instanceof
運(yùn)算符的用法詳解:
class MyClass {}
const obj = new MyClass();
console.log(obj instanceof MyClass); // true
const arr = [];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true
console.log(arr instanceof Date); // false
function Person(name) {
this.name = name;
}
const person = new Person('John');
console.log(person instanceof Person); // true
console.log(person instanceof Object); // true
console.log(person instanceof Date); // false
class Animal {}
class Dog extends Animal {}
const dog = new Dog();
console.log(dog instanceof Dog); // true
console.log(dog instanceof Animal); // true
console.log(dog instanceof Object); // true
instanceof
運(yùn)算符也可以用于檢查對(duì)象是否是某個(gè)接口的實(shí)例,盡管JavaScript中沒有原生的接口概念。在這種情況下,我們可以通過(guò)檢查對(duì)象是否實(shí)現(xiàn)了接口中的所有方法來(lái)判斷。總結(jié)一下,instanceof
運(yùn)算符用于判斷一個(gè)對(duì)象是否是某個(gè)構(gòu)造函數(shù)的實(shí)例。它可以用于檢查對(duì)象是否是某個(gè)類、某個(gè)內(nèi)建類型、某個(gè)自定義構(gòu)造函數(shù)或某個(gè)父類的實(shí)例。