Skip to main content

Command Palette

Search for a command to run...

Objects in JavaScript (With Examples)

Learn All About JavaScript Object Methods

Published
5 min read
Objects in JavaScript (With Examples)
R

Passionate Software Engineer with three years of experience, dedicated to creating robust and scalable web applications. I have a strong foundation in JavaScript, React, Python, and Node.js, and enjoy working with modern tech stacks to build innovative solutions. I'm committed to writing clean and efficient code, following best practices, and staying updated with the latest industry trends.

Throughout my career, I've gained valuable experience in full-stack development, including frontend design, backend development, and database management. I love solving complex problems and implementing creative solutions that enhance user experiences. I believe in the power of collaboration and thrive in cross-functional teams where I can contribute my skills and learn from others.

Beyond coding, I am an avid learner and enjoy sharing my knowledge with the developer community. I regularly contribute to open-source projects, write technical blog posts, and engage in discussions on emerging technologies. I'm always seeking opportunities to expand my skill set and stay at the forefront of software engineering.

Objects in JavaScript are used to store collections of data in the format of “key: value” pairs. Contained within an object we can have any number of variables and/or functions which are then referred to as object properties and methods.

Creating an Object

Let’s work with an example! To initialize a variable car as an object, we use curly braces {}:

var car = {};

We now have an empty object which can be accessed via the Developer Tools console, by simply typing our variable name:

car

// {} [object]

An empty object isn’t all that useful, so let's update it with some data:

var car = {
  name: 'Tesla',
  model: 'Model 3',
  weight: 1700,
  extras: ['heated seats', 'wood decor', 'tinted glass'],
  details: function() {
    alert('This ' + this.name + ' is a ' + this.model + ' it weighs ' + this.weight + 'kg and includes the following extras: ' + this.extras[0] + ', ' + this.extras[1] + ' and ' + this.extras[2] + '.');
  },
  display: function() {
    alert('This car is a ' + this.name + '.');
  }
};

Let’s access this data in our developer tools console:

car.name         // Tesla
car.model        // Model 3
car.weight       // 1700
car.extras[1]    // wood decor
car.details()    // This Tesla is a Model 3 it weighs 1700kg and includes the following extras: heated seats, wood decor and tinted glass.
car.display()    // This car is a Tesla.

As you can see, each name/value pair must be separated by a comma, and the name and value in each case are separated by a colon. The syntax will always follow this pattern:

var objectName = {
  member1Name: member1Value,
  member2Name: member2Value,
  member3Name: member3Value
};

The value of an object member can be pretty much anything — in our car object, we have two strings, a number, an array, and two functions. The first four items are data items and are referred to as the object’s properties. The last two items are functions that allow the object to do something with that data and are referred to as the object’s methods.

This kind of object is called an object literal — we’ve literally written out the object contents as we’ve created it. This is in comparison to objects instantiated from classes, which we’ll take a look at later on.

Dot Notation

Above, you’ve seen the object’s properties and methods accessed using dot notation. The object name car acts as the namespace — it needs to be entered first to access anything within the object. Then you write a dot, followed by the item you want to access — this can be the name of a simple property, an item of an array property, or a call to one of the object’s methods, for example:

car.name
car.extras[1]
car.details()

Deleting Properties

We can use the delete operator to remove properties, like so:

car.model
// Tesla 3

delete car.model

car.model
// undefined

Square Brackets

If for example, we had a multi-word property within our object, such as:

var user = {
  name: "Richard",
  age: 32,
  "likes steaks": true  // a multiword property name must be quoted
};

We couldn’t access the multi-word property with dot-notation:

user.likes potatoes     // syntax error!

This is because a dot requires the key to be a valid variable identifier. That is no spaces and other limitations.

The alternative is to use square brackets, which work with any string:

let user = {};

// set
user["likes steaks"] = true;

// get
alert(user["likes steaks"]); // true

// delete
delete user["likes steaks"];

Updating Object Members

We can update the values within our objects by simply declaring the property you’d like to set with the new value, like so:

user.age          // 32
user.age = 33     // 33
user.age          // 33

You can also create completely new members of your object. For example:

user.surname = 'Smithessson';
// user
{name: "Richard", age: 33, likes steaks: true, surname: "Rembert"}

What is “this”?

You may have noticed the use of the word ‘this’ in our earlier example. See the following:

display: function() {
  alert('This car is a ' + this.name + '.');
}

The this keyword refers to the current object that the code is being written inside of— so in this case this is equivalent to car.

Why not just write car instead? It’s best practice to write well-constructed object-orientated code, and in doing so the use of this is extremely useful. It will ensure the correct values are used when a member's context changes (e.g. two different car object instances may have different names, but will want to use their own name when displaying their own information).

For example:

var car1 = {
  name: 'Tesla',
  display: function() {
    alert('This car is a ' + this.name + '.');
  }
}
var car2 = {
  name: 'Toyota',
  display: function() {
    alert('This car is a ' + this.name + '.');
  }
}

In this case, car1.display() will output "This car is a Tesla." And car2.display() will output "This car is a Toyota.", even though the method's code is exactly the same in both cases.

As this is equal to the object the code is inside —this becomes really useful when you are dynamically generating objects (for example using constructors), which is outside the scope of this article!

Summary

And that’s it! You should now have a good idea of how to work with objects in JavaScript — including creating your own simple objects, as well as accessing and manipulating object properties. You‘ll also begin to see how objects are very useful as structures for storing related data and functionality.

For instance, if you tried to keep track of all the properties and methods in our car object as separate variables and functions, it would be extremely inefficient, and we'd run the risk of clashing with other variables and functions that have the same names. Objects let us keep the information safely locked away in their own package.

Conclusion

If you liked this blog post, follow me on Twitter where I post daily about Tech related things!

🌎 Let's Connect

Javascript Series

Part 13 of 23

Discover the power of Javascript with our comprehensive blog series! Our tutorials cover everything from the basics of variables and functions to advanced topics like object-oriented programming.

Up next

The Basics of JavaScript Conditionals

How to Use Conditionals (if, else, else if) in JavaScript

More from this blog

Rembert Designs Blog | Helping Web Developers And Designers with Resources

107 posts

Passionate Software Engineer with three years of experience, dedicated to creating robust and scalable web applications. I have a strong foundation in JavaScript, React, Python, and Node.js.