Показать сообщение отдельно
  #4 (permalink)  
Старый 04.07.2019, 04:14
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от js123
Что значит ' побочки в конструкторе '. Как это исправить ?
Я думаю, что вам намекают, что такие побочные эффекты в конструкторе являются плохой практикой!

Например, в констркуторе вы используете вызовы функции, которые меняют что-то вне конструктора. (А именно в этом примере массив arr)

Я не представляю, что же могут означать эти классы (An и Ba), но то, как вы используете метод moveElement, показывает, что вам такие классы не нужны, чтобы они не представляли. У меня сложилось впечатление, что вы хотите добавить методы для работы с массивом! В таком случае, почему бы не наследовать от класса Array. (Ведь именно с его экземпляром вы и пытаетесь работать)

{
	class MyArrayExtension extends Array {
		moveElement(from, to) {
			this.splice(to, 0, this.splice(from, 1)[0]);
			return this;
		}
	}

	const an = new MyArrayExtension(4, 3, 2, 1);
	an.moveElement(0, 1);

	console.log(an);
}
Ответить с цитированием