Должен ли я использовать полиморфизм в javascript?

Я программист, который программировал на нескольких языках, как функциональных, так и объектно-ориентированных. Я тоже немного программировал на 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?

32
задан Peter 24 March 2012 в 10:16
поделиться