Вполне вероятно, что я пытаюсь сделать что-то, что противоречит концепции JS. Поэтому если пользоваться перегрузками неправильно, посоветуйте, пожалуйста, что нужно сделать в этом случае.
Сейчас я пишу простые классы-обёртки над функциями рисования фигур на canvas. Например, я хочу сделать удобнее рисование окружности, для этого можно пропустить несколько параметров (или добавить, в случае с другими классами).
В оригинале рисование цветного круга выглядит так:
context.arc(x, y, radius, startDegrees, endDegrees, counterClockwise);
context.fillStyle = '#FF0';
context.fill();
Я хочу сократить до:
var circle = new Circle(x, y, radius, '#FF0');
Но поскольку иногда нужно нарисовать дугу или сектор, то необходимо оставить весь функционал, для этого сделать перегрузку:
var circle = new Circle(x, y, radius, '#FF0', startDegrees, endDegrees, counterClockwise);
Вообщем, вопрос в том, как правильно создавать (или рекомендуется создавать) перегруженные интерфейсы, которые могут отличаться не только количеством параметров, но и типом данных.