Objects in JavaScript
In JavaScript, objects are collections of key-value pairs where values can be data (properties) or functions (methods). Objects are fundamental to JavaScript, as nearly everything in JavaScript is an object, including arrays, functions, and even other objects.
1. Creating Objects
A. Object Literal
The simplest way to create an object is using curly braces {}
.
Example:
const person = {
name: "Alice",
age: 25,
greet: function () {
console.log("Hello!");
},
};
console.log(person.name); // Output: Alice
person.greet(); // Output: Hello!
B. Object Constructor
Using the Object
constructor creates an empty object.
Example:
const person = new Object();
person.name = "Bob";
person.age = 30;
person.greet = function () {
console.log("Hi!");
};
console.log(person.name); // Output: Bob
person.greet(); // Output: Hi!
C. Using Object.create()
This method creates a new object with the specified prototype.
Example:
const prototype = { greet: function () { console.log("Hello!"); } };
const person = Object.create(prototype);
person.name = "Charlie";
console.log(person.name); // Output: Charlie
person.greet(); // Output: Hello!
2. Accessing Object Properties
A. Dot Notation
Access properties using a dot (.
).
Example:
console.log(person.name); // Output: Alice
B. Bracket Notation
Access properties using square brackets ([]
). Useful for dynamic property names.
Example:
console.log(person["name"]); // Output: Alice
const key = "age";
console.log(person[key]); // Output: 25
3. Adding, Modifying, and Deleting Properties
- Adding:
person.country = "USA";
console.log(person.country); // Output: USA
- Modifying:
person.age = 26;
console.log(person.age); // Output: 26
- Deleting:
delete person.age;
console.log(person.age); // Output: undefined
4. Methods in Objects
When a function is a property of an object, it is called a method.
Example:
const car = {
brand: "Tesla",
start: function () {
console.log("Car started!");
},
};
car.start(); // Output: Car started!
5. Iterating Over Object Properties
A. Using for...in
Iterate over all enumerable properties of an object.
Example:
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
B. Using Object.keys()
Returns an array of an object's keys.
Example:
Object.keys(person).forEach((key) => {
console.log(`${key}: ${person[key]}`);
});
C. Using Object.entries()
Returns an array of [key, value]
pairs.
Example:
Object.entries(person).forEach(([key, value]) => {
console.log(`${key}: ${value}`);
});
6. Object Methods
JavaScript provides several built-in methods to work with objects.
-
Object.assign()
: Copies properties from one object to another.
const target = { a: 1 };
const source = { b: 2 };
Object.assign(target, source);
console.log(target); // Output: { a: 1, b: 2 }
-
Object.freeze()
: Prevents modification of an object.
const obj = { a: 1 };
Object.freeze(obj);
obj.a = 2; // No effect
console.log(obj.a); // Output: 1
-
Object.seal()
: Prevents adding or removing properties but allows modification of existing properties.
const obj = { a: 1 };
Object.seal(obj);
obj.b = 2; // No effect
obj.a = 3; // Works
console.log(obj); // Output: { a: 3 }
7. Prototypes and Inheritance
Objects in JavaScript have a prototype, which is another object from which they inherit properties and methods.
Example:
const animal = { eats: true };
const dog = Object.create(animal);
dog.barks = true;
console.log(dog.eats); // Output: true (inherited)
console.log(dog.barks); // Output: true
8. Object Destructuring
Destructuring allows extracting properties from an object into variables.
Example:
const person = { name: "Alice", age: 25 };
const { name, age } = person;
console.log(name); // Output: Alice
console.log(age); // Output: 25
9. Summary
- Objects are key-value pairs that can store properties and methods.
- Use object literals for simple object creation.
- Access object properties using dot or bracket notation.
- Use built-in methods like
Object.keys()
,Object.assign()
, andObject.freeze()
for effective object manipulation. - Mastering objects is crucial for understanding advanced JavaScript concepts like prototypes and inheritance.
Hi, I'm Abhay Singh Kathayat!
I am a full-stack developer with expertise in both front-end and back-end technologies. I work with a variety of programming languages and frameworks to build efficient, scalable, and user-friendly applications.
Feel free to reach out to me at my business email: kaashshorts28@gmail.com.
Top comments (0)