Рубрики
Без рубрики

В чем разница между классом и объектом?

Мы постараемся ответить на этот вопрос, исследуя, cookie, автомобили, а затем какой -то код. Мы увидим это … с меткой JavaScript, OOP, новички.

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

Печенье

Праздники только что прошли недавно. Возможно, вы и/или члены вашей семьи испекла печенье. Иногда люди разрезают это печенье в специальные формы – снеговики, рождественские елки, колокольчики, что угодно. Мы можем сделать это несколькими различными способами:

  • Вырежьте каждое отдельное печенье (объект) из уплощенного теста вручную каждый раз и каждый раз
  • Используйте шаблон резака для печенья (класс), чтобы последовательно искоренить печенье

Каковы некоторые проблемы с первым вариантом? Будет довольно утомительно вырезать формы по одному. Это будет тратить нашу энергию и время.

Напротив, второй вариант позволит нам создать много файлов cookie с меньшим времени/энергией.

В этом сценарии наш резак печенья был нашим класс. Затем мы использовали это класс создать экземпляр несколько печенья.

Легковые автомобили

Файлы cookie отличные, но у них нет никакой функциональности (методы). А как насчет машин?

Вообще говоря, спецификации проектирования (класс) для производства (экземпляра) конкретного автомобиля (объекта) завершаются некоторыми инженерами.

Затем, когда пришло время массовой продукции, инженерам не нужно спускаться на производственный пол и подробно описать каждый шаг, как построить каждый отдельный автомобиль, верно? Это было бы довольно неэффективно и истощит ресурсы компании.

Вместо этого следуют спецификации дизайна (класс). Указанные спецификации проектирования (класс) указывают материалы (свойства) и необходимые функции (методы) каждого автомобиля.

Будь то куки, автомобили или код, принципы одинаковы:

  1. Установите набор руководящих принципов, которые описывают, что что -то такое (свойства) и что он должен делать (методы).
  2. Масса производит случаи этой вещи ».

Для примера кода мы рассмотрим некоторые очень простые «объекты сотрудников». Возможно, что -то, что может стать частью системы персонала.

Каждый сотрудник должен имеют:

  • Имя
  • Фамилия
  • Я БЫ

Кроме того, каждый сотрудник может запросить отпуск, просто заявив о своем имени и сказав, что это требует перерыва.

Давайте сделаем это первым без какого -либо классы

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”