Computer Screen
JavaScript uses a prototype-based inheritance model, where objects can inherit properties and methods from other objects. Let’s dive into how prototypes work.
In JavaScript, every object has a prototype, which is another object that it inherits properties and methods from. You can access an object’s prototype using the Object.getPrototypeOf()
method.
// Object prototype
const animal = {
makeSound: function() {
console.log("Generic animal sound");
},
};
// Object with inheritance
const cat = Object.create(animal);
cat.name = "Whiskers";
cat.makeSound = function() {
console.log("Meow!");
};
cat.makeSound(); // Output: Meow!
// Accessing the prototype
const catPrototype = Object.getPrototypeOf(cat);
console.log(catPrototype === animal); // Output: true
When you create objects using constructor functions, each instance shares a common prototype. This allows you to define methods once in the prototype, saving memory and promoting code reusability.
// Constructor function
function Person(name, age) {
this.name = name;
this.age = age;
}
// Adding a method to the prototype
Person.prototype.greet = function() {
console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
};
// Creating objects using the constructor
const alice = new Person("Alice", 30);
const bob = new Person("Bob", 25);
alice.greet(); // Output: Hello, my name is Alice and I'm 30 years old.
bob.greet(); // Output: Hello, my name is Bob and I'm 25 years old.
Objects can form a chain of prototypes, known as the prototypal chain. If a property or method is not found on an object, JavaScript looks up the chain until it finds the property or reaches the end of the chain.
// Base object
const baseObject = {
baseProperty: "I'm in the base object",
};
// Object with inheritance
const derivedObject = Object.create(baseObject);
derivedObject.derivedProperty = "I'm in the derived object";
console.log(derivedObject.baseProperty); // Output: I'm in the base object
console.log(baseObject.derivedProperty); // Output: undefined
Prototypes are a fundamental aspect of JavaScript’s inheritance model. They enable objects to inherit properties and methods, providing a mechanism for code reuse and structuring complex applications. Understanding prototypes is essential for effective object-oriented programming in JavaScript.
One of the common questions among Docker users is whether Docker containers consume disk space.…
Sorting data is a common operation in programming, allowing you to organize information in a…
Splitting a string into an array of substrings is a common operation in C# programming,…
Starting the Docker daemon is the first step towards managing Docker containers and images on…
Serializing an object to JSON (JavaScript Object Notation) format is a common task in C#…
When running Docker containers, you may encounter scenarios where containers need to access resources outside…