Skip to content
Related Articles

Related Articles

Improve Article
JavaScript TypeError – Can’t assign to property “X” on “Y”: not an object
  • Difficulty Level : Expert
  • Last Updated : 29 Jul, 2020

This JavaScript exception can’t assign to property occurs in strict-mode only and this error occurs If the user tries to create a property on any of the primitive values like a symbol, a string, a number, or a boolean. Primitive values cannot be used to hold any property.

Message:

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

Error Type:

TypeError

Cause of Error: In strict-mode, a primitive value in the code is used to create a property on it. Primitive values can not hold properties.

Example 1: In this example, the string is used to create properties on it, So the error has occurred.



HTML




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

Output(in console):

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

Example 2: In this example, the boolean ‘true’ is used to create properties on it, So the error has occurred.

HTML




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

Output(in console):

TypeError: Cannot create property 'prop' on boolean 'true'
My Personal Notes arrow_drop_up
Recommended Articles
Page :