JavaScript TypeError: no se puede asignar a la propiedad «X» en «Y»: no es un objeto

Esta excepción de JavaScript que no se puede asignar a la propiedad ocurre solo en modo estricto y este error ocurre si el usuario intenta crear una propiedad en cualquiera de los valores primitivos como un símbolo, una string, un número o un valor booleano. Los valores primitivos no se pueden utilizar para contener ninguna propiedad.

Mensaje:

TypeError: can't assign to property "x" on {y}: not an 
           object (Firefox)
TypeError: Cannot create property 'x' on {y} (Chrome)

Tipo de error:

TypeError

Causa del error: en modo estricto, se usa un valor primitivo en el código para crear una propiedad en él. Los valores primitivos no pueden contener propiedades.

Ejemplo 1: en este ejemplo, la string se usa para crear propiedades en ella, por lo que se ha producido el error.

HTML

<script>
    'use strict';
    var GFG = "This is GeeksforGeeks";
    GFG.prop = {}; // error here
</script>

Salida (en consola):

TypeError: Cannot create property 'prop' on string 
'This is GeeksforGeeks'

Ejemplo 2: En este ejemplo, el booleano ‘true’ se usa para crear propiedades en él, por lo que se ha producido el error.

HTML

<script>
    'use strict';
    var variableName = true;
    variableName.prop = {}; // error here
</script>

Salida (en consola):

TypeError: Cannot create property 'prop' on boolean 'true'

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *