Sie lesen die englische Version dieses Inhalts, da für dieses Gebietsschema noch keine Übersetzung vorhanden ist. Helfen Sie uns, diesen Artikel zu übersetzen!
Die Methode Object.isExtensible() bestimmt, ob ein Objekt erweiterbar ist. Das heißt, es können dem Objekt neue Eigenschaften hinzugefügt werden.
Syntax
Object.isExtensible(obj)
Parameter
obj- Das Objekt, das überprüft werden soll.
Rückgabewert
Ein Boolean, der angibt, ob das übergebene Objekt erweiterbar ist.
Beschreibung
Standardmäßig sind Objekte erweiterbar: Es ist möglich, ihnen neue Eigenschaften zuzuweisen und sie dadurch zu verändern. In Engines, die __proto__ unterstützen, kann auch deren __proto__ Eigenschaft geändert werden. Ein Objekt kann mittels Object.preventExtensions(), Object.seal() oder Object.freeze() explizit als nicht-erweiterbar markiert werden.
Beispiele
// Neue Objekte sind erweiterbar.
var empty = {};
Object.isExtensible(empty); // === true
// ...aber das kann sich ändern.
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false
// Versiegelte Objekte sind per Definition nicht erweiterbar.
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false
// Eingefrorene Objekte sind ebenfalls per Definition nicht erweiterbar.
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false
Anmerkungen
In ES5 muss das Argument der Methode ein echtes Objekt sein. Ist dies nicht der Fall, wird ein TypeError geworfen. In ES2015 hingegen wird ein Nicht-Objekt einfach als nicht-erweiterbares Objekt behandelt, sodass von der Methode false zurückgegeben wird.
Object.isExtensible(1); // TypeError: 1 is not an object (ES5 code) Object.isExtensible(1); // false (ES2015 code)
Spezifikationen
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 5.1 (ECMA-262) Die Definition von 'Object.isExtensible' in dieser Spezifikation. |
Standard | Initial definition. Implemented in JavaScript 1.8.5. |
| ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Object.isExtensible' in dieser Spezifikation. |
Standard | |
| ECMAScript Latest Draft (ECMA-262) Die Definition von 'Object.isExtensible' in dieser Spezifikation. |
Entwurf |
Browser-Kompatibilität
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 6 | 4.0 (2.0) | 9 | 12 | 5.1 |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | ? | ? | ? | ? | ? | ? |