handler.isExtensible()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

handler.isExtensible() 메서드는 Object.isExtensible()에 대한 트랩입니다.

시도해보기

구문

js
new Proxy(target, {
  isExtensible(target) {},
});

매개 변수

다음 매개변수는 isExtensible() 메서드에 전달됩니다. this는 처리기에 바인딩됩니다.

target

대상 객체

반환 값

isExtensible() 메서드는 불리언 값을 반환합니다.

설명

handler.isExtensible() 메서드는 Object.isExtensible()에 대한 트랩입니다.

가로채기

이 트랩은 다음 작업을 가로챌 수 있습니다.

불변 조건

다음 불변 조건이 위반되면 프록시에서 TypeError가 발생합니다.

  • Object.isExtensible(proxy)는 반드시 Object.isExtensible(target)와 같은 값을 반환해야합니다.

예제

isExtensible 트랩

다음 코드는 Object.isExtensible()를 트랩합니다.

js
const p = new Proxy(
  {},
  {
    isExtensible(target) {
      console.log("called");
      return true;
    },
  },
);

console.log(Object.isExtensible(p)); // "called"
// true

다음 코드는 불변 조건을 위반합니다.

js
const p = new Proxy(
  {},
  {
    isExtensible(target) {
      return false;
    },
  },
);

Object.isExtensible(p); // TypeError is thrown

명세서

Specification
ECMAScript Language Specification
# sec-proxy-object-internal-methods-and-internal-slots-isextensible

브라우저 호환성

BCD tables only load in the browser

같이 보기