Episode 29 of 46

Creating a New Object

Learn different ways to create objects in JavaScript.

JavaScript offers several ways to create objects. Let's explore each approach.

1. Object Literal (Most Common)

let car = {
    make: "Toyota",
    model: "Camry",
    year: 2024,
    start: function() {
        console.log("Vroom!");
    }
};

2. Using new Object()

let car = new Object();
car.make = "Toyota";
car.model = "Camry";
car.year = 2024;
car.start = function() {
    console.log("Vroom!");
};

3. Object.create()

let carPrototype = {
    start() {
        console.log(`${this.make} ${this.model} started!`);
    }
};

let myCar = Object.create(carPrototype);
myCar.make = "Honda";
myCar.model = "Civic";
myCar.start();  // "Honda Civic started!"

4. Factory Functions

function createUser(name, age) {
    return {
        name: name,
        age: age,
        greet() {
            console.log(`Hi, I'm ${this.name}`);
        }
    };
}

let user1 = createUser("Alice", 25);
let user2 = createUser("Bob", 30);
user1.greet();  // "Hi, I'm Alice"

5. Shorthand Property Names

let name = "Alice";
let age = 25;

// Old way
let user = { name: name, age: age };

// Shorthand (when key and variable name match)
let user = { name, age };
console.log(user);  // { name: "Alice", age: 25 }

Copying Objects

let original = { a: 1, b: 2 };

// Spread operator (shallow copy)
let copy = { ...original };

// Object.assign
let copy2 = Object.assign({}, original);