Reflect.isExtensible()

Reflect.isExtensible() 정적 메서드는 객체의 확장 가능 여부, 즉 속성을 추가할 수 있는지 판별합니다. Object.isExtensible()과 유사하지만 차이점도 있습니다.

구문

Reflect.isExtensible(target)

매개변수

target
확장 가능 여부를 판별할 대상 객체.

반환 값

객체의 확장 가능 여부를 나타내는 Boolean.

예외

targetObject가 아니면 TypeError.

설명

Reflect.isExtensible() 메서드는 Object.isExtensible()와 유사하게, 객체에 새로운 속성을 추가할 수 있는지 판별합니다.

예제

Reflect.isExtensible() 사용하기

Object.isExtensible()도 참고하세요.

// 새로운 객체는 확장 가능
var empty = {};
Reflect.isExtensible(empty); // === true 

// ...하지만 바꿀 수 있음
Reflect.preventExtensions(empty); 
Reflect.isExtensible(empty); // === false 

// 봉인한 객체는 확장 불가능함
var sealed = Object.seal({}); 
Reflect.isExtensible(sealed); // === false 

// 동결한 객체도 확장 불가능함
var frozen = Object.freeze({}); 
Reflect.isExtensible(frozen); // === false

Object.isExtensible()과의 차이점

Reflect.isExtensible()은 첫 번째 매개변수가 원시값이면 TypeError를 던집니다. 반면 Object.isExtensible()은 우선 객체로 변환을 시도합니다.

Reflect.isExtensible(1);
// TypeError: 1 is not an object

Object.isExtensible(1);
// false

명세

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Reflect.isExtensible' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Reflect.isExtensible' in that specification.
Draft  

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
isExtensibleChrome Full support 49Edge Full support 12Firefox Full support 42IE No support NoOpera Full support 36Safari Full support 10WebView Android Full support 49Chrome Android Full support 49Firefox Android Full support 42Opera Android Full support 36Safari iOS Full support 10Samsung Internet Android Full support 5.0nodejs Full support 6.0.0

Legend

Full support  
Full support
No support  
No support

같이 보기