freeCodeCamp/guide/russian/miscellaneous/pseudoclassical-class-defin.../index.md

3.2 KiB
Raw Blame History

title localeTitle
Pseudoclassical Class Definition Определение псевдоклассического класса

Определение псевдоклассического класса происходит в 2 блоках кода вместо одного, что происходит на других языках, таких как Python и PHP.

Первый блок называется «конструкторской функцией», в которой объявляются атрибуты класса. Это аспекты класса, которые уникальны для каждого нового экземпляра. Пример с автомобилями заключается в том, что бренд, цвет и местоположение могут отличаться. Во втором блоке кода вы объявляете методы, которые будут использоваться каждым экземпляром класса. Примеры - это то, что может сделать автомобиль, двигаться вперед, останавливаться, открывать дверь.

пример

var Car = function(brand, color, location) { 
 this.brand = brand; 
 this.color = color; 
 this.location = location 
 }; 
 
 Car.prototype = { 
 move: function() { this.location++; }, 
 stop: function() { this.location = 0; }, 
 }; 

объяснение

Причиной объявления всего класса в 2-х блоках является сохранение в памяти при запуске создания экземпляров класса. Если объявление класса было «Функциональным» стилем, то есть новая копия метода (ов), созданного для каждого экземпляра. Объявляя класс «псевдоклассический» стиль, только одна копия методов хранится в памяти.

Когда экземпляр класса попытается получить доступ к методу:

var x_car = new Car('lexus', 'white', 0); 
 x_car.move(); 

Переводчик будет на самом деле первый не найти вызываемый метод в самом объекте , так как это было сделано из конструктора функции автомобиля. Как вы можете видеть выше, нет ссылки на какой-либо из методов в функции конструктора Car. Оттуда интерпретатор ищет Car.prototype который теперь разделяется между всеми экземплярами. Там переводчик находит метод, который был вызван!

Дальнейшее чтение:

Блог пользователя Natac

Классы MDN