instanceof와 constructor

오주형·2023년 1월 28일
0
class A {
  constructor() {}
}

class B extends A {
  constructor() {
    super()
  }
}

class C extends B {
  constructor() {
    super()
  }
}

const a = new A()
const b = new B()
const c = new C()

console.log(a instanceof A); // true
console.log(a instanceof B); // false
console.log(a instanceof C); // false


console.log(b instanceof A); // true
console.log(b instanceof B); // true
console.log(b instanceof C); // false


console.log(c instanceof A); // true
console.log(c instanceof B); // true
console.log(c instanceof C); // true

// c라는 인스턴스가 어느 부분에서 만들어진 것인지 확인 하기 위해
// construct라는 속성을 일치 연산자를 통해서 비교하면 된다
console.log(c.constructor === A); // false
console.log(c.constructor === B); // false
console.log(c.constructor === C); // true


const fruits = ['Apple', 'Banana'];
console.log(fruits.constructor === Array); // true
console.log(fruits instanceof Array); // true
// fruits라는 데이터는 Array 클래스의 하나의 인스턴스가 된다는 뜻
// 아래도 같은 코드

const fruits = new Array('Apple', 'Banana');
console.log(fruits.constructor === Array); // true
profile
곧 개발자

0개의 댓글