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

Создает ли определение методов через конструктор в JavaScript повторяющиеся копии функций?

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

Does Defining Methods via Constructor in JavaScript Create Duplicate Function Copies?

Последствия определения методов с помощью прототипа и конструктора в JavaScript для производительности

В JavaScript существуют два подхода к созданию «классов» с открытыми функциями: используя прототип или конструктор. Метод 1 назначает функции экземплярам через конструктор, а метод 2 использует прототип для совместного использования функций между всеми экземплярами.

Хотя метод 2 часто утверждается как более эффективный, лишение экземпляров частных переменных экземпляра является существенным недостатком. . Однако действительно ли на практике происходит очевидное создание дублирующихся копий функции для каждого экземпляра Методом 1? ) действительно превосходит метод 1 (конструктор) с точки зрения скорости.

Практические последствия

Хотя эта разница очевидна в тестах, ее актуальность для реальных приложений сомнительна. . Даже в сценариях со значительным количеством экземпляров объектов (например, 10 000 на кадр) такая микрооптимизация вряд ли устранит узкие места в производительности.

Рекомендации

При оптимизации производительность имеет решающее значение, рекомендуется объявлять методы через прототип. В остальном метод 1 обеспечивает большую гибкость и соответствует общим соглашениям объектно-ориентированного программирования. Кроме того, использование частных свойств, обозначаемых префиксом подчеркивания (например, _process()), улучшает инкапсуляцию и препятствует прямому изменению.

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3