Object.isExtensible() 메서드는 객체가 확장 가능한지(객체에 새 속성을 추가할 수 있는지 여부)를 결정합니다.

구문

Object.isExtensible(obj)

매개변수

obj
판별할 객체.

반환 값

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

설명

객체는 기본으로 확장 가능입니다: 새로운 속성이 추가될 수 있고 (__proto__ 속성을 지원하는 엔진에서는) 수정될 수 있습니다. 객체는 Object.preventExtensions(), Object.seal() 또는 Object.freeze()를 사용하여 확장 불가로 표시될 수 있습니다.

예제

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

// ...하지만 변경될 수 있습니다.
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false

// 봉인된 객체는 정의에 의해 확장 불가입니다.
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false

// 동결된 객체 또한 정의에 의해 확장 불가입니다.
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false

주의

ES5에서, 이 메서드의 인수가 비객체(원시형)인 경우, 그러면 TypeError가 발생합니다. ES6에서, 비객체 인수는 확장 불가인 보통 객체처럼 다뤄집니다, 그저 false를 반환하는.

Object.isExtensible(1);
// TypeError: 1은 객체가 아닙니다 (ES5 코드)

Object.isExtensible(1);
// false                         (ES6 코드)

명세

명세 상태 설명
ECMAScript 5.1 (ECMA-262)
The definition of 'Object.isExtensible' in that specification.
Standard 초기 정의. JavaScript 1.8.5에서 구현됨.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Object.isExtensible' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Object.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 6Edge Full support 12Firefox Full support 4IE Full support 9Opera Full support 12Safari Full support 5.1WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

같이 보기

문서 태그 및 공헌자

이 페이지의 공헌자: alattalatta, mdnwebdocs-bot, Netaras
최종 변경자: alattalatta,