Стоит ли использовать прототип или мы должны использовать ООП для JavaScript? - PullRequest
5 голосов
/ 12 января 2010

Я уже некоторое время являюсь разработчиком, и последние несколько лет я использую инфраструктуру прототипов и ее реализацию для ООП, которая будет использоваться в Javascript. Я также использовал jquery и некоторые другие фреймворки.

Я изучал, как работает js и как он отличается от ООП, поскольку это язык, ориентированный на прототипы. На мой взгляд, это отличная концепция, ориентированная на прототипы язык.

При должном внимании к:
- именно так и предполагалось использовать язык, поэтому он быстрее, продуктивнее и теоретически, проще и плавнее.
- Каждый браузер имеет свою собственную реализацию того, как должен работать javascript, что иногда делает невозможным сжатый код во всех браузерах или, по крайней мере, в большинстве.
- Обычно эти ООП фреймворки (dojo.declare (), Js.Class, MooTools и т. Д.) Более чем подходят для хорошей работы, и они являются кросс-браузерными.

Я не могу не задаться вопросом, стоит ли начинать разработку RIA с использованием ориентированных на прототип javascript? Или я должен пойти на Dojo.declare () , js.class или что-то подобное?

Ответы [ 2 ]

3 голосов
/ 12 января 2010

Я не думаю, что вы должны потерять ООП при программировании на JS ; Я предлагаю вам обнять ООП !

  • Я предпочитаю библиотеку ExtJS , которая предоставляет классы, поощряет создание подклассов и предоставляет очень хороший пример четко определенной иерархии классов.
  • Дуглас Крокфорд приводит примеры того, как сделать данные членов и функции-члены приватными (без защиты).
  • Многие люди используют прототип JavaScript в качестве средства для реализации наследования; снова см. Дуглас Крокфорд .
  • Полиморфизм прост, поскольку JS не является строго типизированным.

Кроме того, многие из популярных библиотек JavaScript отвлекают браузер от различий; вы, вероятно, найдете в своем коде несколько «если», чтобы компенсировать различия в браузерах, если вы решите использовать библиотеку JS.

Наконец, вот еще несколько хороших ресурсов от SO .

0 голосов
/ 29 ноября 2011

Я использовал prototype.js с прошлого года на RIA.Я не привык к библиотекам, о которых вы говорите, но я использую jQuery.Узнав, как использовать prototype.js, я просто избежал jQuery.Я был в состоянии сделать что-нибудь, используя prototype.js, особенно когда область действительно имеет значение, прототип обрабатывает это так красивоВы не можете найти замену метода bind , предоставляемого prototype, в других библиотеках.Это очень очень полезно.Я предлагаю вам идти с прототипом без страха ... это круто и так легко обращаться.

...