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

Когда следует избегать немедленного создания анонимных классов?

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

When to Avoid Immediate Instantiation of Anonymous Classes?

Немедленное создание анонимных классов: поучительная история

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

Чтобы напрямую создать экземпляр анонимного класса, мы используем следующий синтаксис:

var entity = new class {
    constructor(name) { this.name = name; }
    getName() { return this.name; }
}('Foo');

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

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

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

var entity = {
    name: 'Foo',
    getName() { return this.name; }
};
Заявление о выпуске Эта статья перепечатана по адресу: 1729392136. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3