Я программист, который программировал на нескольких языках, как функциональных, так и объектно-ориентированных. Я тоже немного программировал на Javascript, но никогда не использовал (или должен был использовать) в нем полиморфизм.
Теперь, в качестве хобби, я хотел бы перенести некоторые приложения, написанные на Java и C#, которые активно используют полиморфизм, на Javascript.
Но на первый взгляд я читал много "Возможно, но..."
Так есть ли ему альтернатива?
Пример того, что я хотел бы написать на JS на псевдоязыке:
abstract class Shape{ { printSurface() } ; }
class Rect : Shape() { printSurface() { print (sideA*sideB}}
class Circle : Shape() { printSurface() { print { pi*r*r }}
TheApp { myshapes.iterate(shape s) {s.printSurface() } }
Итак, классический полиморфный случай: итерация по базовому классу.
Я хотел бы добиться такого поведения. Я знаю, что этополиморфизм, но есть ли какие-либо другие «шаблоны», которые я упускаю из виду, которые обеспечивают такое поведение, или мне следует изучить возможности наследования в Javascript?