Мы постараемся ответить на этот вопрос, исследуя, cookie, автомобили, а затем какой -то код. Посмотрим, что класс это «шаблон/план», из которого мы можем эффективно создавать несколько объектов.
Печенье
Праздники только что прошли недавно. Возможно, вы и/или члены вашей семьи испекла печенье. Иногда люди разрезают это печенье в специальные формы – снеговики, рождественские елки, колокольчики, что угодно. Мы можем сделать это несколькими различными способами:
- Вырежьте каждое отдельное печенье (объект) из уплощенного теста вручную каждый раз и каждый раз
- Используйте шаблон резака для печенья (класс), чтобы последовательно искоренить печенье
Каковы некоторые проблемы с первым вариантом? Будет довольно утомительно вырезать формы по одному. Это будет тратить нашу энергию и время.
Напротив, второй вариант позволит нам создать много файлов cookie с меньшим времени/энергией.
В этом сценарии наш резак печенья был нашим класс. Затем мы использовали это класс создать экземпляр несколько печенья.
Легковые автомобили
Файлы cookie отличные, но у них нет никакой функциональности (методы). А как насчет машин?
Вообще говоря, спецификации проектирования (класс) для производства (экземпляра) конкретного автомобиля (объекта) завершаются некоторыми инженерами.
Затем, когда пришло время массовой продукции, инженерам не нужно спускаться на производственный пол и подробно описать каждый шаг, как построить каждый отдельный автомобиль, верно? Это было бы довольно неэффективно и истощит ресурсы компании.
Вместо этого следуют спецификации дизайна (класс). Указанные спецификации проектирования (класс) указывают материалы (свойства) и необходимые функции (методы) каждого автомобиля.
Будь то куки, автомобили или код, принципы одинаковы:
- Установите набор руководящих принципов, которые описывают, что что -то такое (свойства) и что он должен делать (методы).
- Масса производит случаи этой вещи ».
Для примера кода мы рассмотрим некоторые очень простые «объекты сотрудников». Возможно, что -то, что может стать частью системы персонала.
Каждый сотрудник должен имеют:
- Имя
- Фамилия
- Я БЫ
Кроме того, каждый сотрудник может запросить отпуск, просто заявив о своем имени и сказав, что это требует перерыва.
Давайте сделаем это первым без какого -либо классы
const bob = {
fname: "Bob",
lname: "Smith",
id: 112334,
requestTimeOff() {
return `${this.fname} ${this.lname} needs a break!`
}
}
const alice = {
fname: "Alice",
lname: "Jones",
id: 112335,
requestTimeOff() {
return `${this.fname} ${this.lname} needs a break!`
}
}
const sam = {
fname: "Sam",
lname: "Walton",
id: 112336,
requestTimeOff() {
return `${this.fname} ${this.lname} needs a break!`
}
}
Какие проблемы здесь? Ну, мы каждый раз описываем каждое свойство каждого сотрудника. Также requestTimeOff дублируется для каждого объект, тратить память и загромождать наш код!
Давайте теперь создадим класс к инкапсулировать каждый «объект сотрудника».
Создайте шаблон (класс)
class Employee {
// Specify the properties of each 'employee'
constructor (fname, lname, id) {
this.fname = fname;
this.lname = lname;
this.id = id;
}
requestTimeOff() {
return `${this.fname} ${this.lname} needs a break!`
}
}
Экземпляр объектов
Теперь давайте снова создадим наши 3 «объекта сотрудников».
const bob = new Employee ('Bob', 'Smith', 112334);
const alice = new Employee ('Alice', 'Jones', 112335);
const sam = new Employee ('Sam', 'Walton', 112336);
Обратите внимание, сколько меньше кода потребовалось для создания наших 3 сотрудников!
Независимо от того, являются ли это файлы cookie, автомобили или код для создания экземпляров сотрудников. Принцип такой же. Один раз имеет смысл стандартизировать сборник спецификаций как класс, а затем повторно использовать этот класс для «массового производства» индивидуального объекты.
Оригинал: “https://dev.to/codefinity/what-is-the-difference-between-a-class-and-an-object-2d5i”