Reflect 오브젝트

  • 빌트인 오브젝트

    • JSON,Math와 같이 글로벌 오브젝트 존재
  • Reflect.get()

    • construct 가 없으면 인스턴스 생성 불가

    • Reflect의 모든 메서드는 static 메서드

  • 정적 메서드 이름과 Proxy handler 의 트랩 이름이 같음

  • Reflex.get(newProxy,”sports”)을 실행하면

  • newProxy의 get() 트랩이 호출됨

  • 인스턴스를 생성하지 않음(직접 호출)

  • 인스턴스 실행환경

    • Proxy.prototype으로 인스턴스 생성

    • 생성한 인스턴스에서 prototype 참조

    • 메모리 사용, 공유 환경 유지와 부가 처리 필요

  • Reflect는 인스턴스 실행환경이 필요하지 않음

  • Object.prototype은 모든 빌트인 오브젝트에 상속됨

    • hasOwnProperty() 는 그다지 사용하지 않음, 비효율적
  • 필요한 때에, 필요한 곳에서

    • 오브젝트와 메서드를 지정하여 호출하면 효율적
  • 자바스크립트의 기본적인 아키텍처는

    • 원본 오브젝트의 prototype에 연결된 메서드를

    • 인스턴스의 _proto_에서 공유(참조)

    • 인스턴스마다 고유의 값을 유지하려는 것과는 다른 관점

  • 이 시점에서 아키텍처를 바꿀수 없음

    • reflect는 이런 점을 고려한 접근

    • 엔진 처리 효율성과 사용성 향상

  • get()

  • target 오프젝트에서 프로퍼티값 반환

  • 오브젝트에서 프로퍼티 값을 구하는 형태

    • object[name] 형태를

    • Reflect.get(object,name) 형태로 사용

  • set()

    • target 오브젝트에 프로퍼티 키와 값 설정

    • Reflect.set(sportsObj, event[0],

      • this.player || evnet[1]);
  • has()

  • apply() - call(), apply()

results matching ""

    No results matching ""