handler.preventExtensions()

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

시도해보기

구문

new Proxy(target, {
  preventExtensions(target) {
  }
});

매개 변수

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

target

대상 객체

반환 값

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

설명

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

가로채기

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

불변 조건

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

  • Object.preventExtensions(proxy)Object.isExtensible(proxy)false인 경우에만 true를 반환합니다.

예제

preventExtensions 트랩

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

const p = new Proxy({}, {
  preventExtensions(target) {
    console.log('called');
    Object.preventExtensions(target);
    return true;
  }
});

console.log(Object.preventExtensions(p)); // "called"
                                          // false

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

const p = new Proxy({}, {
  preventExtensions(target) {
    return true;
  }
});

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

명세서

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

브라우저 호환성

BCD tables only load in the browser

같이 보기