TypeError: can't assign to property "x" on "y": not an object

Message

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

Type d'erreur

Quel est le problème ?

En mode strict, une exception TypeError est d√©clench√©e lorsqu'on tente de cr√©er une propri√©t√© sur une valeur primitive telle qu'un symbole, une cha√ģne de caract√®res, un nombre ou un boole√©n.

Le probl√®me peut √™tre li√© √† une valeur qui se trouve √† un endroit inattendu ou qu'un √©quivalent objet d'une valeur primitive est attendu (ex. String pour la cha√ģne de caract√®res ou Number pour un nombre).

Exemples

Exemple invalide

'use strict';

var foo = "my string";
// The following line does nothing if not in strict mode.
foo.bar = {}; // TypeError: can't assign to property "bar" on "my string": not an object

Exemple valide

On pourra corriger le problème en convertissant la valeur primitive en sont équivalent objet avec un constructeur (ici String pour .

'use strict';

var foo = new String("my string");
foo.bar = {};

Voir aussi