Я программист, который запрограммирован на нескольких языках, как функциональных, так и ориентированных на OO. Я также запрограммировал некоторый Javascript, но никогда не использовал (или не использовал) полиморфизм в нем.
Теперь, как вид проекта для хобби, я хотел бы перенести некоторые приложения, написанные на Java и С#, которые сильно используют полиморпизм для Javascript.
Но на первый взгляд я читал много "Это возможно, но..."
Так есть альтернатива?
Пример того, что я хотел бы написать в JS в pseudolang:
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?