Object.isExtensible()

Baseline Widely available

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

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

시도해보기

const object1 = {};

console.log(Object.isExtensible(object1));
// Expected output: true

Object.preventExtensions(object1);

console.log(Object.isExtensible(object1));
// Expected output: false

구문

js
Object.isExtensible(obj);

매개변수

obj

판별할 객체.

반환 값

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

설명

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

예제

js
// 새로운 객체는 확장 가능입니다.
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를 반환하는.

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

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

명세

Specification
ECMAScript® 2025 Language Specification
# sec-object.isextensible

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isExtensible

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

같이 보기