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

Например, следующий код создает пустой объект:

const myObject = {};

А следующий код создает объект с двумя свойствами, name и age:

const person = {
  name: "John",
  age: 30
};

Точечная нотация против скобки Notaio:

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

console.log(person.name); // Output: "John"
console.log(person["age"]); // Output: 30

Вы также можете добавлять или изменять свойства объекта, используя запись через точку или скобки. Например:

person.name = "Jane";
person["age"] = 25;
console.log(person); // Output: { name: "Jane", age: 25 }

Методы

Как объяснялось в этой статье, функции являются гражданами первого класса, поэтому мы можем использовать выражение функции, которое возвращает значение, и использовать его следующим образом:

const person = {
  firstName: `John`,
  age: 30,
  lastName: `Smidt`,
  getFullName: function (firstName, lastName) {
  return firstName + ' ' + lastName
  }
}
console.log(`${person.getFullName(person.firstName, person.lastName)} is ${person.age} years old!`)

`getFullName` теперь является методом объекта. методы — это функции, которые определены как свойства объекта. Они позволяют инкапсулировать поведение (т. е. действия или операции), связанные с объектом, в единую сущность.

Однако это не оптимально, так как мы передаем `person.firstName` и `person.lastName` объекту person, в то время как сам объект имеет к ним доступ. Фактически, мы можем использовать ключевое слово this для доступа к этим свойствам. Ключевое слово this относится к объекту, которому принадлежит метод. Это позволяет методам получать доступ и управлять свойствами и значениями объекта, частью которого они являются. Таким образом, мы можем переписать приведенный выше код следующим образом:

const person = {
    firstName: `John`,
    age: 30,
    lastName: `Smidt`,
    getFullName: function () {
        return this.firstName + ' ' + this.lastName
    }
}

console.log(`${person.getFullName()} is ${person.age} years old!`)
// John Smidt is 30 years old!

Давайте зарегистрируем это из метода getFullName:

const person = {
    firstName: `John`,
    age: 30,
    lastName: `Smidt`,
    getFullName: function () {
        console.log(this);
        return this.firstName + ' ' + this.lastName;
    }
}


console.log(`${person.getFullName()} is ${person.age} years old!`)

который производит:

{
  firstName: 'John',
  age: 30,
  lastName: 'Smidt',
  getFullName: [Function: getFullName]
}
John Smidt is 30 years old!

Итак, в методе this указывает на объект person.