Последствия определения методов с помощью прототипа и конструктора в JavaScript для производительности
В JavaScript существуют два подхода к созданию «классов» с открытыми функциями: используя прототип или конструктор. Метод 1 назначает функции экземплярам через конструктор, а метод 2 использует прототип для совместного использования функций между всеми экземплярами.
Хотя метод 2 часто утверждается как более эффективный, лишение экземпляров частных переменных экземпляра является существенным недостатком. . Однако действительно ли на практике происходит очевидное создание дублирующихся копий функции для каждого экземпляра Методом 1? ) действительно превосходит метод 1 (конструктор) с точки зрения скорости.
Практические последствия
Хотя эта разница очевидна в тестах, ее актуальность для реальных приложений сомнительна. . Даже в сценариях со значительным количеством экземпляров объектов (например, 10 000 на кадр) такая микрооптимизация вряд ли устранит узкие места в производительности.
Рекомендации
При оптимизации производительность имеет решающее значение, рекомендуется объявлять методы через прототип. В остальном метод 1 обеспечивает большую гибкость и соответствует общим соглашениям объектно-ориентированного программирования. Кроме того, использование частных свойств, обозначаемых префиксом подчеркивания (например, _process()), улучшает инкапсуляцию и препятствует прямому изменению.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3