instanceof
instanceof 연산자를 사용하면 객체가 특정 클래스에 속하는지 아닌지를 확인할 수 있다. instanceof는 상속 관계도 확인해준다.
obj instanceof Class
obj가 Class에 속하거나 Class를 상속받는 클래스에 속하면 true가 반환된다.
class Rabbit {}
let rabbit = new Rabbit();
// rabbit이 클래스 Rabbit의 객체인가요?
alert( rabbit instanceof Rabbit ); // true
instanceof
는 생성자 함수에서도 사용할 수 있다.
// 클래스가 아닌 생성자 함수
function Rabbit() {}
alert( new Rabbit() instanceof Rabbit ); // true
Array
같은 내장 클래스에도 사용할 수 있다.
let arr = [1, 2, 3];
alert( arr instanceof Array ); // true
alert( arr instanceof Object ); // true
위 예시에서 arr은 클래스 Object에도 속한다는 점에 유의해야한다. Array는 프로토타입 기반으로 Object를 상속받는다.