Изучение прототипов JavaScript: подробное руководство

Прототипы JavaScript — это фундаментальная концепция объектно-ориентированного программирования. Они позволяют расширять и изменять поведение существующих объектов и создавать новые объекты на основе общих свойств и методов. В этой статье мы рассмотрим различные методы прототипирования в JavaScript с примерами кода, которые помогут вам понять их использование и возможности.

  1. Метод Object.create():
    Метод Object.create()создает новый объект с указанным объектом-прототипом и свойствами.
const personPrototype = {
  greet() {
    console.log(`Hello, ${this.name}!`);
  }
};
const john = Object.create(personPrototype);
john.name = "John Doe";
john.greet(); // Output: Hello, John Doe!
  1. Метод Object.getPrototypeOf().
    Метод Object.getPrototypeOf()возвращает прототип (т. е. внутреннее свойство [[Prototype]]) объекта.
const person = {
  name: "Alice"
};
const prototype = Object.getPrototypeOf(person);
console.log(prototype); // Output: {}
  1. Метод Object.setPrototypeOf().
    Метод Object.setPrototypeOf()устанавливает прототип (т. е. внутреннее свойство [[Prototype]]) объекта.
const person = {
  name: "Bob"
};
const newPrototype = {
  greet() {
    console.log(`Hello, ${this.name}!`);
  }
};
Object.setPrototypeOf(person, newPrototype);
person.greet(); // Output: Hello, Bob!
  1. Свойство Function.prototype:
    Свойство Function.prototypeпозволяет добавлять собственные методы или свойства ко всем функциям.
Function.prototype.logName = function() {
  console.log(`Function name: ${this.name}`);
};
function sayHello() {
  console.log("Hello!");
}
sayHello.logName(); // Output: Function name: sayHello
  1. Свойство Array.prototype.
    Свойство Array.prototypeпредоставляет дополнительные методы для работы с массивами.
const numbers = [1, 2, 3, 4, 5];
Array.prototype.sum = function() {
  return this.reduce((total, current) => total + current, 0);
};
console.log(numbers.sum()); // Output: 15

Прототипы JavaScript предлагают мощный способ гибкого расширения и изменения поведения объектов. В этой статье мы рассмотрели несколько методов-прототипов, таких как Object.create(), Object.getPrototypeOf(), Object.setPrototypeOf(), Function.prototypeи 21. Используя эти методы, вы можете улучшить свой код JavaScript и создавать более надежные приложения.