Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 Instanceof 연산자

<시간/>

operator 인스턴스는 생성자의 프로토타입 속성이 개체의 프로토타입 체인에 나타나는지 여부를 테스트합니다. 더 간단한 언어에서는 변수가 특정 유형인지 테스트합니다. 그러나 몇 가지 주의 사항이 있습니다. 몇 가지 예를 살펴보겠습니다.

프리미티브

문자열과 숫자는 객체가 아닌 원시 값이므로 [[Prototype]]이 없으므로 일반 객체로 래핑해야 작동합니다.

예시

console.log(1 instanceof Number)
console.log(new Number(1) instanceof Number)
console.log("" instanceof String)
console.log(new String("") instanceof String)

출력

false
true
false
true

구성 가능한 기능

객체(JS 클래스)를 반환하는 함수는 instanceof 연산자를 사용하여 객체를 확인할 수 있습니다.

예시

function Person(name) {
   this.name = name
}
let john = new Person("John");
console.log(john instanceof Person)

출력

true

상속

JS는 프로토타입 상속을 지원하므로 계층 구조의 클래스에 대해 instanceof를 확인하면 true를 반환합니다.

예시

class Person {}
class Student extends Person {
   constructor(name) {
      super()
      this.name = name
   }
}
let john = new Student("John");
console.log(john instanceof Person)
console.log(john instanceof Student)

출력

true