Встречается на собеседованиях • сегодня

Как динамически создать класс в runtime

В JavaScript можно динамически создавать классы с помощью class и eval(), но это не рекомендуется из-за проблем с безопасностью и производительностью. Лучше использовать фабрики классов или прокси:

javascript
function createClass(className, methods) {
  return new Function('parent', `
    return class ${className} {
      ${Object.entries(methods).map(([name, fn]) => 
        `${name}() { ${fn.toString()} }`).join('\n')}
    }
  `)();
}

const DynamicClass = createClass('MyClass', {
greet() { console.log('Hello!'); }
});
const instance = new DynamicClass();
instance.greet(); // Hello!

text

Более безопасный вариант - использовать конструктор функций:

```javascript
const DynamicClass = function() {};
DynamicClass.prototype.method = function() { /* ... */ };

Для TypeScript можно использовать declaration merging или advanced types.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы