Как написать JavaScript с фабричными функциями

Как написать JavaScript с фабричными функциями

В принципе, я бы выделил 3 подхода для создания объекта в JS:

Вот 3 примера (учитывая ваш Кролик)

 // class class Rabbit { constructor() { this.speed = 3; // it would be so nice to have just 'static const speed = 3;' instead of // using constructor for that } getSpeed() { return this.speed; } } let rabbit1 = new Rabbit(); // constructor function ConstructorRabbit(){ } ConstructorRabbit.prototype.speed = 3; ConstructorRabbit.prototype.getSpeed = function() { return this.speed; }; let rabbit2 = new ConstructorRabbit(); // factory const rabbitProto = { speed: 3, getSpeed() { return this.speed; } }; function factoryRabbit () { return Object.create(rabbitProto); } let rabbit3 = factoryRabbit(); 

Я не уверен, что есть так много профессионалов, чтобы использовать только фабрику для создания объектов, но, вероятно, я могу выделить один. Как уже упоминалось в статье, если мы ссылаемся на очень известные « Шаблоны проектирования », мы должны отдавать предпочтение композиции объектов, а не наследованию классов. И я полностью согласен с этим постулатом, поэтому, возвращаясь к классам JS и ES6, мы можем сказать, что делегирование прототипа может быть лучше, чем наследование классов в некоторых случаях.

Но также мы не должны забывать это (как уже упоминалось в статье) утверждение: «Как это реализовано, не имеет никакого значения, если оно не реализовано плохо». И этот, я бы сказал, действительно хороший.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector