0% completed
Objects are a fundamental part of JavaScript, allowing you to store collections of data and more complex entities. Unlike primitive data types that hold only a single value (such as strings or numbers), objects can store varied data types and represent real-world entities more effectively by grouping related data and functionality.
In JavaScript, an object is a standalone entity
, with properties and types. Think of it as a container for values in a key:value
pair format. These values can be properties and functions (methods when inside objects).
Consider a real-world object: a car
.
A car has properties like color, brand, and model, and it can perform actions like driving and braking. These properties and actions collectively define what a car is and what it can do.
The simplest way to create an object in JavaScript is using object literals:
{}
.color
, brand
, and model
are properties of the car object, each storing values describing the car.drive
is a method, a function defined within an object, allowing the car object to perform actions.In JavaScript, object properties can be accessed in two main ways:
Each method has its use cases and benefits.
Dot notation is straightforward and easy to read, making it the preferred way to access properties when you know the property name ahead of time.
Bracket notation is more versatile than dot notation, allowing access to properties using dynamic keys (e.g., stored in variables) or keys that might not be valid identifier names.
Understanding when to use dot notation versus bracket notation allows you to access object properties effectively, adapting to different scenarios encountered in JavaScript programming.
JavaScript allows you to update the properties of an object after it has been created. This can be done using both dot notation and bracket notation, offering flexibility depending on the scenario.
Let's consider an object representing a book:
In this example:
book
object is created with title
, author
, and year
properties.year
property of the book
is updated to 2021
using dot notation. Dot notation is straightforward and works well when you know the property name at the time of coding.
book.year = 2021;
directly sets the year
property to a new value.author
property is updated to "John Doe" using bracket notation. This method is useful for property names that are dynamic or not valid identifiers.
book["author"] = "John Doe";
allows the author
property to be updated to a new value, demonstrating the flexibility of bracket notation for property names that might come from variables or need to be computed dynamically.Object methods are functions that belong to an object, allowing the object to perform actions or operations based on its properties. These methods are essential for encapsulating behavior within objects, making them more modular and self-contained.
To define a method, you simply create a function as a property of an object. You can then access and execute this method using either dot notation
or bracket notation
, followed by parentheses to invoke the function.
Consider an object representing a person that includes a method to greet:
In this example:
person
object has three properties: firstName
, lastName
, and greet
. The greet
property is a method defined as a function.this
Keyword: Inside the greet
method, this
refers to the person
object. this.firstName
and this.lastName
access the object's firstName
and lastName
properties, respectively.person.greet();
calls the greet
method on the person
object. This executes the function defined in greet
, printing a greeting message to the console using the object's properties.JavaScript native objects, also known as built-in objects
, are fundamental objects provided by the JavaScript language itself. They are available for use in any JavaScript environment, serving as the building blocks for performing common tasks like mathematical operations, working with dates, or handling text. These objects offer a wide range of functionality out-of-the-box, from basic data manipulation to complex operations.
Here are some of the key native objects in JavaScript:
String: Represents and manipulates a sequence of characters. Provides methods for searching, slicing, and manipulating text.
Number: Provides a wrapper for primitive numeric values. Offers constants and methods for working with numbers.
Boolean: Represents a logical entity with two values, true or false. Used in conditions and loops.
Array: Used to store multiple values in a single variable. Includes methods for adding, removing, and iterating over items.
Object: The base object for many JavaScript objects. Provides a structure for storing keyed collections and complex entities.
Function: Represents executable code and can be invoked. Functions in JavaScript are first-class objects.
Date: Provides methods for working with dates and times, allowing for the creation, manipulation, and formatting of date objects.
RegExp (Regular Expression): Used for matching text with patterns. Facilitates complex text searches and replacements.
Math: A collection of mathematical constants and functions. Helps perform mathematical tasks on numbers.
JSON (JavaScript Object Notation): Used for parsing and formatting JSON data, a common format for data exchange.
Promise: Represents the eventual completion (or failure) of an asynchronous operation and its resulting value.
Symbol: Provides a way to create unique identifiers for object properties, ensuring they are unique and immutable.
These native objects form the foundation of JavaScript programming, enabling developers to perform essential tasks and implement complex features with ease. Understanding these objects and their methods is crucial for effective JavaScript development.
Method Name | Description |
---|---|
Object.assign() | Copies the values of all enumerable own properties from one or more source objects to a target object. |
Object.create() | Creates a new object with the specified prototype object and properties. |
Object.defineProperty() | Adds a new property to an object, or modifies an existing property on an object, and returns the object. |
Object.defineProperties() | Adds or modifies multiple properties at once on an object, and returns the object. |
Object.entries() | Returns an array of a given object's own enumerable string-keyed property [key, value] pairs. |
Object.freeze() | Freezes an object. A frozen object can no longer be changed. |
Object.getOwnPropertyDescriptor() | Returns a property descriptor for a named property on an object. |
Object.getOwnPropertyDescriptors() | Returns an object containing all own property descriptors for an object. |
Object.getOwnPropertyNames() | Returns an array of all properties (including non-enumerable properties except for those which use Symbol) found directly upon a given object. |
Object.getOwnPropertySymbols() | Returns an array of all symbol properties found directly upon a given object. |
Object.getPrototypeOf() | Returns the prototype (i.e., the value of the internal [[Prototype]] property) of the specified object. |
Object.is() | Determines whether two values are the same value. |
Object.isExtensible() | Determines if extending of an object is allowed. |
Object.isFrozen() | Determines if an object was frozen. |
Object.isSealed() | Determines if an object is sealed. |
Object.keys() | Returns an array of a given object's own enumerable property names, iterated in the same order that a normal loop would. |
Object.preventExtensions() | Prevents new properties from ever being added to an object. |
Object.seal() | Prevents other code from deleting properties of an object. |
Object.setPrototypeOf() | Sets the prototype (i.e., the internal [[Prototype]] property) of a specified object to another object or null. |
Object.values() | Returns an array of a given object's own enumerable property values. |
Let's explore some of above methods with examples.
The Object.create()
method creates a new object, using an existing object as the prototype of the newly created object.
personPrototype
object is defined with a greet
method.Object.create(personPrototype)
creates a new person
object with personPrototype
as its prototype.person.name = 'Alice'
adds a name
property to person
.person.greet()
accesses the greet
method from the prototype and outputs a greeting.Object.entries()
method returns an array of a given object's own enumerable string-keyed property [key, value]
pairs.
Object.entries(car)
converts the car
object into an array of [key, value]
pairs, preserving the property structure in array format.The Object.keys()
method returns an array of a given object's own enumerable property names, iterated in the same order that a normal loop would.
Object.keys(user)
retrieves an array of user
object's keys, allowing for easy iteration or inspection of the object's properties.Object.values()
method returns an array of a given object's own enumerable property values.
Object.values(user)
extracts the values from the user
object into an array, making it straightforward to work with just the values of an object......
.....
.....