Skip to main content

JavaScript Objects

An object is a data structure that can hold multiple values, including other objects, functions, and primitive data types.

Objects can be created using object literals or using the Object() constructor.

Object Literals:

//creating an object using object literal notation
const person = {
name: "John",
age: 30,
address: {
street: "123 Main St",
city: "New York",
state: "NY",
zip: "10001",
},
hobbies: ["reading", "painting", "swimming"],
greet: function () {
console.log(
`Hello, my name is ${this.name} and I'm ${this.age} years old.`
);
},
};

//accessing object properties using dot notation
console.log(person.name); // "John"
console.log(person.address.city); // "New York"
console.log(person.hobbies[1]); // "painting"
person.greet(); // "Hello, my name is John and I'm 30 years old."

Using the Object() constructor:

//creating an object using the Object() constructor
const person = new Object();
person.name = "John";
person.age = 30;
person.address = {
street: "123 Main St",
city: "New York",
state: "NY",
zip: "10001",
};
person.hobbies = ["reading", "painting", "swimming"];
person.greet = function () {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
};

//accessing object properties using bracket notation
console.log(person["name"]); // "John"
console.log(person["address"]["city"]); // "New York"
console.log(person["hobbies"][1]); // "painting"
person.greet(); // "Hello, my name is John and I'm 30 years old."

Using the JavaScript Keyword new​

The new keyword is used to create a new instance of an object from a constructor function.

As an example:

// Define a constructor function
function Person(name, age) {
this.name = name;
this.age = age;
}

// Create a new instance of Person using the `new` keyword
const john = new Person("John", 30);

// Access the properties of the new object
console.log(john.name); // Output: 'John'
console.log(john.age); // Output: 30

In the example:

  • The Person function is used as a constructor to create a new object. The new keyword is used to create a new instance of the Person object, with the name 'John' and age 30.
  • The john variable now refers to the new object that was created, which has the name and age properties that were defined in the Person constructor.
note

When a constructor function is used with the new keyword, the this keyword inside the function refers to the new instance of the object that is being created.

JavaScript Objects are Mutable​

In JavaScript, objects are mutable, which means that their values can be changed after they are created.

As an example:

const person = {
name: "John",
age: 30,
};

// Changing the value of a property
person.name = "Jane";

// Adding a new property
person.address = "123 Main St";

console.log(person); // Output: { name: 'Jane', age: 30, address: '123 Main St' }

In the example

  • We create an object called person with properties name and age.
  • Then, we change the value of the name property to 'Jane' and add a new address property to the object.
  • The person object is mutable, so we can change its values and add or remove properties as needed.