Объект в 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.