instanceof
運算符用于檢查一個對象是否是某個構造函數的實例。它的語法如下:
object instanceof constructor
其中,object
是要檢查的對象,constructor
是構造函數。
instanceof
運算符返回一個布爾值,如果object
是constructor
的實例,則返回true
,否則返回false
。
以下是instanceof
運算符的用法詳解:
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
運算符也可以用于檢查對象是否是某個接口的實例,盡管JavaScript中沒有原生的接口概念。在這種情況下,我們可以通過檢查對象是否實現了接口中的所有方法來判斷。總結一下,instanceof
運算符用于判斷一個對象是否是某個構造函數的實例。它可以用于檢查對象是否是某個類、某個內建類型、某個自定義構造函數或某個父類的實例。