entry image

Рассмотрение объектов в JavaScript

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

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

Объекты могут иметь свойства, представляющие собой пары ключ-значение, в которых хранятся данные, и методы, являющиеся функциями, связанными с объектом. Вы можете получить доступ к свойствам объекта и изменить их, используя запись через точку (например, object.property) или запись в квадратных скобках (например, object["property"]). Методы можно вызывать, используя круглые скобки после имени метода (например, object.method()).

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

Вы можете динамически добавлять, изменять или удалять свойства объекта, используя присваивание (object.property = value) или ключевое слово delete. Вы также можете перебирать свойства объекта, используя циклы или встроенные методы, такие как Object.keys(), Object.values() или Object.entries().

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

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

Использование строк для различения объектов с атрибутами name, id в вашем коде, которые используются для идентификации элемента как того, который вы ищете.


if (obj.label === "name") {
console.log(obj);
}

Ваш проект со временем расширяется (в размере, актуальности, популярности или во всем сразу). Существует больше элементов для идентификации друг от друга, поэтому требуется больше строк. Например, изменения в вашей практике именования меток возрастают по мере того, как строки становятся длиннее. Теперь вам нужно отследить и заменить каждое вхождение этих строк. В результате коммит для этой модификации значительно больше, чем должен быть. Что улучшает ваш имидж в глазах неосведомленных. Это также делает вашу жизнь неприятной, поскольку теперь гораздо сложнее определить основную причину регрессии в вашей истории git.


const joe_black_person = "Joe Black";
const joe_black_company = "Joe Black";
// У них одинаковое имя? //
joe_black_person === joe_black_company; //true//
// Это одно и то же? //
joe_black_person === joe_black_company; //true//

Строки плохо подходят для идентификации. Ваш редактор или IDE не будут проверять, является ли строка именно той, которую вы хотели; вы должны учитывать уникальность и ошибки.

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


// У них одинаковое имя? //
joe_black_person.name === joe_black_company.name; // true//
// Это одно и то же?//
joe_black_person === joe_black_company; //false//

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

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

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

Комментарии (0)

Отправить свой комментарий

Приглашаю на контакт для обсуждения вашего проекта и его проекттрования.