JavaScript Objects and their methods

Objects in JavaScript are non-primitive datatypes ie. they can contain many properties written as name: value pairs. A property's value can be a function, in which case the property is known as a method. Objects are mutable, meaning their contents can be changed, even when they are declared as const.

Object properties can be accessed in two ways:

objectName.propertyName

or

objectName["propertyName"]

The for...in loop can be used to iterate over the keys of an object. In each iteration, one of the properties from the object is assigned to the variable of that loop. A non-inherited property can be removed using the delete operator.

When JavaScript objects are passed as arguments to functions or methods, they are passed by reference, not by value. This means that the object itself (not a copy) is accessible and mutable (can be changed) inside that function.

Like arrays, objects also have methods. Methods are actions that can be performed on objects.

'this' keyword:

In JavaScript, this keyword refers to an object, which object.. depends on how this is being invoked. Inside an object method, this refers to the current object, while alone this refers to the global object. In a function too, this refers to the global object, but in a function, with strict mode, this becomes undefined.