Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript Object-Oriented JavaScript (2015) Introduction to Methods Adding a Method to an Object

Object literal

Could anyone explain in simple terms what the difference is between an object and an object literal?

I have googled it and been on stack overcry or whatever and still can't seem to find a decent answer!

Thanks Leon

Having read the answers I appreciate leon asking for simple explanation. I often find I will get 10 - 50% of an answer. That is, the answer is far above what I can grasp. New topics are brought in leaving me with more questions and still not getting a plain understanding. The closest grasp I thought I had of what an object literal was was this:

object = {
}

But now I don't know.

5 Answers

Julie Myers
Julie Myers
7,627 Points

An object is one way of organizing your data in javaScript. It allows you to create once and use many times. For example:

/* Let's say you want to create a way to organize your friends and their car. Instead 
of creating a bunch of separate data    like so: */
var firstName = "Chloe";
var lastName = "Outlander";
var carBrand = "Honda";
var carModel = "Civic";

function getFullName() {
  console.log(firstName + " " +  lastName);
}

function getCar() {
  console.log(carBrand);
} 

// You can organize it into one neat place using objects, like so:
var friends = {
  firstName: "Chloe",
  lastName: "Outlander",
  getFullName() {
    console.log(this.firstName + " " + lastName);
  }
}

var car = {
  carBrand: "Honda",
  carModel: "Civic",
  getCar: function() {
    console.log(this.carBrand);
  }
}

An object literal is one of 4 common ways of creating an object. The example above uses object literal notation to create an object. Another way of creating an object is using the constructor function with the new keyword.

Stephen Gheysens
Stephen Gheysens
11,935 Points

Hi Leon,

An object literal declaration looks like this:

var obj = {
  "property1": "words",
  "property2": "more words"
}

and declares an object with specific properties. Due to prototypal inheritance in Javascript, this is technically an instance of the Object "class", just with extra properties.

A "traditional" object declaration follows the patterns from Object-Oriented languages like Java to explicitly declare a new instance of the Object class:

var obj2 = new Obj();

If we wanted this obj2 to behave like the first one, we'd have to add another two lines with:

obj2.property1 = "words";
obj2.property2 = "more words";

It's a subtle difference, but when it comes time to write complicated Javascript applications, you'll be using inheritance a lot more, and adding/removing properties (especially properties that are functions) will be very important.

Stack Overflow answer

MDN Intro to OO JS

sorry I meant:

var object = {

}

Julie, that was beautifully said :D

Julie Myers
Julie Myers
7,627 Points

Thanks, John. :)

Steven Parker
Steven Parker
218,583 Points

Stephen is close, but a generic literal object would look more like this:

var obj = {
  property1: "words",
  property2: number
}

Property names and numeric or boolean values would not have quotes. When everything is quoted, the item in question is probably a JSON object, which is a special case.

The difference between and object and object literal is similar to an ordinary variable and a literal value. In the case of a literal, the value(s) is(are) supplied in the code when the object/variable is defined.

Thanks for the answers.

Actually I found something useful on wiki:

literals

I can't vouch for the veracity of the article though, as I am still getting to grips with programming.

In the video it would appear that "dice" is the object literal. Simple as that.