«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Средства доступа к свойствам

Средства доступа к свойствам

Опубликовано 4 ноября 2024 г.
Просматривать:327

Property accessors

Понимание методов доступа к свойствам в JavaScript

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

Точечная запись

Точка — наиболее распространенный способ доступа к свойствам. Вы просто используете точку (.), за которой следует имя свойства.

Обозначение скобок

Обозначение скобок полезно, когда имя свойства является динамическим или не является допустимым идентификатором (например, оно содержит пробелы или специальные символы). Вы используете квадратные скобки ([]) и передаете имя свойства в виде строки

Создание объектов в JavaScript

Язык предоставляет синтаксис, известный как нотация объектных литералов, для быстрого создания объектов. Литералы объектов обозначаются фигурными скобками. В следующем примере создается пустой объект без свойств.

var animal = {};

Внутри фигурных скобок свойства и их значения указываются в виде списка пар ключ/значение.
Ключами могут быть строки или идентификаторы, а значениями — любое допустимое выражение. Список пар ключ/значение разделяется запятыми, причем каждый ключ и значение разделяются двоеточием.

В следующем примере создается объект с тремя свойствами с использованием литеральной записи.

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

var animal = {
  dolphin: 1,
  "swim": "some string",
  mammal: {
  }
};

Каждое свойство записано на отдельной строке с отступом. Весь объект можно было бы записать в одну строку, но в этом формате код более читабелен. Это особенно актуально для объектов со множеством свойств или вложенных объектов.

JavaScript предоставляет две нотации для доступа к свойствам объекта.

Первый и наиболее распространенный вариант известен как точечная запись.
При записи через точку доступ к свойству осуществляется путем указания имени хост-объекта, за которым следует точка (или точка), а затем имя свойства.

Точечная запись

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

В следующем примере показано, как точечная нотация используется для чтения и записи свойства. Если объект.dolph
изначально имел значение один, затем после выполнения этого оператора его значение станет равным двум.

  • Обратите внимание: если у Animal.dolphon еще не было значения, оно было бы неопределенным.
animal.dolphin = animal.dolphin   1;

Синтаксис доступа к свойствам объекта известен как нотация в скобках. В скобках за именем объекта следует набор квадратных скобок.
Внутри квадратных скобок имя свойства указывается в виде строки.
Предыдущий пример точечной записи был переписан ниже для использования скобочной записи. Хотя код может выглядеть иначе, функционально он эквивалентен предыдущему примеру.

object["dolphin"] = object["dolphin"]   1;

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

В следующем примере показано, как имена свойств могут создаваться на лету с использованием скобочных обозначений. В этом примере имя свойства foo создается путем объединения содержимого переменной d со строкой «дельфин».

var d = "d";

object[d   "dolphin"] = "bar";

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

object["!@#$%^&*()."] = true;

Доступ к вложенным свойствам

Доступ к свойствам вложенных объектов можно получить путем соединения ссылок на точки и/или скобки вместе.
Например, следующий объект содержит вложенный объект с именем «дельфин», который содержит другой объект с именем «млекопитающее», у которого есть свойство с именем «годы», которое содержит значение «единица».

var animal = {
  dolphin: {
    mammal: {
      years: 1
    }
  }
};

Следующие выражения получают доступ к вложенному свойствуyears. В первом выражении используется точечная запись, а во втором выражении используется нотация квадратных скобок.
Третье выражение объединяет обе обозначения для достижения того же результата.

animal.dolphin.mammal.lungs;
animal["dolphin"]["mammal"]["years"];
animal["dolphin"].mammal["years"];

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

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

var years = animal.dolphin.mammal.years;
var count = 0;

for (var i = 0; i 



Функции как методы

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

var animal = {
  sum: function(dolphin, years) {
    return dolphin   years;
  }
};

Методы также можно вызывать с использованием записи через точку и скобки.
Следующий пример вызывает метод sum() из предыдущего примера, используя обе нотации.

dolphin.sum(1, 2);
dolphin["sum"](1, 2);

Добавление свойств и методов

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

В следующем примере создается пустой объект.
Затем с помощью операторов присваивания добавляются два свойства, дельфин и млекопитающее, а также метод, лет.
Обратите внимание, что в этом примере используется точечная запись, но нотация скобок также будет работать одинаково.

var animal = {};
animal.dolphin = 1;
animal.mammal = null;
animal.years = function() {
  return "I am 5 years()";
};

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

  • Точка: используется, когда имена свойств являются допустимыми идентификаторами.
  • Обозначение в скобках: используйте, когда имена свойств являются динамическими или недопустимыми идентификаторами. Эти методы доступа имеют фундаментальное значение в JavaScript для эффективного управления объектами и их свойствами.

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/irenejpopova/property-accessors-2dgk?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3