Здравствуйте, коллеги-энтузиасты кода! Сегодня мы собираемся погрузиться в мир объектов JavaScript. Пристегнитесь, потому что это будет веселая поездка!

Реальные объекты, свойства и методы

Начнем с реальной аналогии. Подумайте о машине. Автомобиль - это объект, верно? У него есть такие свойства, как вес и цвет, а также такие методы, как запуск и остановка. Теперь представьте, если бы наша машина была объектом JavaScript. Это будет выглядеть примерно так:

let car = {
  name: "Fiat",
  model: "500",
  weight: "850kg",
  color: "white",
  start: function() { /* code to start the car */ },
  drive: function() { /* code to drive the car */ },
  brake: function() { /* code to apply brakes */ },
  stop: function() { /* code to stop the car */ }
};

Все автомобили имеют одинаковые свойства, но значения свойств различаются от автомобиля к автомобилю. Точно так же все автомобили имеют одни и те же методы, но методы выполняются в разное время. Все как в реальной жизни!

Объекты JavaScript: больше, чем просто переменные

В JavaScript переменные являются контейнерами для значений данных. Вы можете присвоить простое значение переменной следующим образом:

let car = "Fiat";

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

const car = {
  type: "Fiat",
  model: "500",
  color: "white"
};

Значения записываются в виде пар имя:значение, разделенных двоеточием. Общепринятой практикой является объявление объектов с помощью ключевого слова const.

Определение объекта

Вы определяете (и создаете) объект JavaScript с литералом объекта. Вот пример:

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

Пробелы и переносы строк не важны. Определение объекта может занимать несколько строк.

Доступ к свойствам объекта

Вы можете получить доступ к свойствам объекта двумя способами:

objectName.propertyName

or

objectName["propertyName"]

Например, если вы хотите получить доступ к фамилии Джона Доу, вы можете сделать это следующим образом:

person.lastName; // returns "Doe"

or

person["lastName"]; // also returns "Doe"

Методы объекта

Объекты также могут иметь методы. Методы — это действия, которые можно выполнять над объектами. Они хранятся в свойствах как определения функций. Вот пример:

const person = {
  firstName: "John",
  lastName: "Doe",
  id: 5566,
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};

В этом примере this относится к объекту person. Итак, this.firstName означает firstName свойство person.

Что это?

В JavaScript ключевое слово this относится к объекту. К какому объекту он относится, зависит от того, как вызывается this. В объектном методе this относится к объекту. Сам по себе this относится к глобальному объекту. В функции this относится к глобальному объекту. В функции в строгом режиме this не определено. В событии this относится к элементу, получившему событие. Такие методы, как call(), apply() и bind(), могут ссылаться this на любой объект.

Помните, что this не является переменной. Это ключевое слово. Вы не можете изменить значение this.

Доступ к методам объекта

Вы получаете доступ к объектному методу со следующим синтаксисом:

objectName.methodName()

Например, если вы хотите получить полное имя Джона Доу, вы можете сделать это следующим образом:

let name = person.fullName(); // returns "John Doe"

Если вы обращаетесь к методу без скобок (), он вернет определение функции:

let name = person.fullName; // returns the function definition

Слово предостережения

Когда переменная JavaScript объявляется с ключевым словом new, переменная создается как объект:

x = new String();        // Declares x as a String object
y = new Number();        // Declares y as a Number object
z = new Boolean();       // Declares z as a Boolean object

Избегайте строковых, числовых и логических объектов. Они усложняют ваш код и замедляют скорость выполнения.

И все, народ! Вы только что прокатились по миру объектов JavaScript. Помните, как и автомобили, объекты JavaScript имеют свойства и методы. И точно так же, как вождение, программирование должно приносить удовольствие. Так что продолжайте тренироваться и наслаждайтесь поездкой!

О, и последнее. Почему программисты не любят природу? В нем слишком много ошибок! (Надеюсь, это заставило вас улыбнуться. Если нет, обещаю в следующий раз придумать шутку получше!)

Удачного кодирования!