Esta excepción de JavaScript no puede definir la propiedad «x»: «obj» no es extensible ocurre cuando Object.preventExtensions() se usa en un objeto para que ya no sea extensible, por lo que ahora no se pueden agregar nuevas propiedades al objeto.
Mensaje:
TypeError: Cannot create property for a non-extensible object (Edge) TypeError: can't define property "x": "obj" is not extensible (Firefox) TypeError: Cannot define property: "x", object is not extensible. (Chrome)
Tipo de error:
TypeError
Causa del error: después de aplicar el método Object.preventExtensions() en un objeto, se agregan nuevas propiedades al objeto, lo cual no está permitido.
Ejemplo 1: en este ejemplo, la nueva propiedad se agrega después de aplicar el método Object.preventExtensions() , por lo que se produjo el error.
HTML
<script> 'use strict'; var GFG_Obj = {'name': 'GFG'}; Object.preventExtensions(GFG_Obj); GFG_Obj.age = 22; // error here </script>
Salida (en consola):
TypeError: Cannot create property for a non-extensible object
Ejemplo 2: en este ejemplo, la nueva propiedad se agrega mediante el método defineProperty() después de aplicar el método Object.preventExtensions() , por lo que se produjo el error.
HTML
<script> 'use strict'; var GFG_Obj = {'name': 'GFG'}; Object.preventExtensions(GFG_Obj); // error here Object.defineProperty(GFG_Obj, 'person', { dob: "02/11/1997" } ); </script>
Salida (en consola):
TypeError: Cannot define property 'person': object is not extensible
Publicación traducida automáticamente
Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA