Раз такая песня пошла, то мне вчера на ютьюбе в комментариях немец заявил, что JS имеет говёный синтаксис и очень мало примитивов. Если с синтаксисом он очевидно гребёт, то вот про количество примитивов я сказал, что это из-за мощной системы прототипов и их чейнинга. Однако, я остался с сомнениями, так ли они хороши.
Кто-то может мне объяснить преимущество прототипов перед теми же классами?
У могу попробовать ответить, в ооп есть 2 видов: настоящее и желаемое, оно реализовано в языках с статической и динамической типизацией соответственно. Если брать реализацию принципа наследования в js, то в качестве родителя выступает объект(прототип), в рантайме мы может туда докинуть какое-то состояние или поведение, с стат типизацией все жестко определяется во время компиляции. Из-за этого выплывает разные реализации полиморфизма: в стат это параметрический, в динам это структурный полиморфизм(утиная типизация)