JS: Object Tutorial

By Xah Lee. Date: . Last updated: .

What is JavaScript Object Datatype

JavaScript object is a collection of key/value pairs.

Each key/value pair of a object is called property. [see Property Overview]

Each object automatically inherit parent object's properties.

JavaScript objects are used for 2 purposes:

Create Object

// create a object with 3 properties
const jj = { cat: 19, dog: 20, rabbit: 25 };

Access Property

2 syntax to access property:

// creating a object
const jj = { cat: 19, dog: 20, rabbit: 25 };

// Accessing property, bracket notation
console.log(jj["cat"] === 19);

// Accessing property, dot notation
console.log(jj.cat === 19);

Add Property

Create a empty object, then add some properties:

const jj = {}; // creating a object
jj.c1 = 3; // add a property c1
jj.c2 = 4;

console.log(jj);
// { c1: 3, c2: 4 }

Change a Property's Value

const jj = { a: 1, b: 2 };
jj.a = 9;
console.log(jj);
// { a: 9, b: 2 }

Delete a Property

const jj = { cat: 19, dog: 20, rabbit: 25 };
delete jj.cat;
console.log(jj);
// { dog: 20, rabbit: 25 }

Loop Over Object's Properties

const jj = { a: 19, c: 20, b: 25 };

// loop thru object's own enumarable properties
Object.keys(jj).forEach((x) => {
  console.log(x, jj[x]);
});

/*
prints
a 19
c 20
b 25
*/

Nested Array and Object

Because object's property's value can be any object data type, so you can have any nested array and object. (because array is also a object. [see Understand JS Array])

// Key/Value, with one value being array
const x = { a: 1, b: 2, c: [3, 4] };
console.log(x["c"][0] === 3);

Example of key/value with one value being a variable that eval to array:

const y = [3, 4];
const x = { a: 19, b: 20, c: y };
console.log(x["c"][0] === 3);

The syntax for accessing elements can be chained.

// syntax for accesing array/hash can be chained

console.log({ a: 1, b: 2, c: [3, 4] }["c"][0] === 3);

Following is another example of JavaScript object. This is a JSON format. [see What is JSON]

// JSON format is basically nested js objects
const myStructure = {
  name: {
    first: "Cat",
    last: "bird",
  },
  age: 19,
  hobbies: ["shopping", "dancing"],
};

Define Method

A method is just a property that has value of function.

// create a object
const jj = {};

// create a method named m
jj.m = function (x) {
  return x + 1;
};

// calling the method
console.log(jj.m(3) === 4);

JavaScript Object Model

JavaScript object model is very different from Java, Python, Ruby.

Browser Console Object Syntax Error?

JavaScript, Object and Inheritance

BUY Ξ£JS JavaScript in Depth