Summary
The Object.isExtensible()
method determines if an object is extensible (whether it can have new properties added to it).
Syntax
Object.isExtensible(obj)
Parameters
- obj
- The object which should be checked.
Description
Objects are extensible by default: they can have new properties added to them, and (in engines that support __proto__
their __proto__ property) can be modified. An object can be marked as non-extensible using Object.preventExtensions
, Object.seal
, or Object.freeze
.
Examples
// New objects are extensible. var empty = {}; assert(Object.isExtensible(empty) === true); // ...but that can be changed. Object.preventExtensions(empty); assert(Object.isExtensible(empty) === false); // Sealed objects are by definition non-extensible. var sealed = Object.seal({}); assert(Object.isExtensible(sealed) === false); // Frozen objects are also by definition non-extensible. var frozen = Object.freeze({}); assert(Object.isExtensible(frozen) === false);
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript Language Specification 5.1th Edition (ECMA-262) | Standard | Initial definition. Implemented in JavaScript 1.8.5 |
ECMAScript Language Specification 6th Edition (ECMA-262) | Draft |
Browser compatibility
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 4 (2.0) | 6 | 9 | 12 | 5.1 |
Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | ? | ? | ? | ? | ? |
Based on Kangax's compat table.