Кому-либо удалось преподавать themself сильные навыки ООП посредством основной разработки с JavaScript? [закрытый]

13
задан 5 revs, 3 users 100% 18 January 2013 в 20:07
поделиться

8 ответов

Во-первых, позвольте мне предисловие к этому, сказав, что JavaScript - один из моих любимых языков. Мне нравится его использовать, и мне нравится его сила.

JavaScript, безусловно, выполняет ООП, и если вы осознаете его, он делает ООП достаточно хорошо. Но я бы не рекомендовал изучать ООП через JavaScript по следующим причинам:

  • JavaScript использует своего рода ублюдки Прототипного наследования и Классического наследования. В JavaScript вы не определяете классы, как в классическом языке, но все же есть остатки классического наследования - например, ключевое слово new . Это очень сбивает с толку людей, которые увлеклись классическим ООП.

  • В JavaScript нет обычной концепции частных и открытых переменных, как в классическом языке (например, Java). Конечно, вы можете определять общедоступные и частные переменные, но методы являются своего рода эзотерическими.Поскольку JavaScript на самом деле не выполняет общедоступные и частные переменные «из коробки», сама идея сокрытия и инкапсуляции данных неприменима.

  • JavaScript, безусловно, может выполнять полиморфизм, но он не делает этого через обычную перегрузку / переопределение функций. Вместо этого функция или метод могут принимать переменное количество аргументов, которые могут быть добавлены на лету во время выполнения. Опять же, он может делать полиморфизм, но он просто не делает этого, как большинство более распространенных и популярных языков.

Как я уже сказал, я люблю JavaScript и люблю работать с ним. Вы, безусловно, можете выполнять ООП на JavaScript, и вы, безусловно, можете изучить ООП, изучив его на JavaScript. Но я думаю, что это тяжелая битва.

Я думаю, вам лучше сначала изучить ООП с Ruby, а затем перейти на JavaScript. Ruby и JavaScript имеют разные синтаксисы, но возможности и «ощущения» языков очень похожи. Вы можете делать схожие вещи с обоими языками, и оба языка имеют схожие функции и поддерживают похожие парадигмы.

10
ответ дан 2 December 2019 в 00:31
поделиться

Многие разработчики утверждают, что JavaScript не имеет реальной функциональности ООП, а некоторые говорят, что вам даже не следует использовать включенную функциональность ООП. Я также много кодировал на объектно-ориентированном JavaScript. Но я также много писал на PHP и Java, используя все методы ООП.

Важными вещами, которые отсутствуют в JavaScript, являются статические или конечные классы, а также интерфейсы. Вы довольно часто используете их в таких языках, как Java.

Я бы сказал, что если вы хотите узнать, что означает ООП и как оно работает в небольших случаях, достаточно JavaScript. Чтобы действительно изучить ООП, вам нужно выучить такой язык, как Java, C ++, Ruby или даже PHP.

1
ответ дан 2 December 2019 в 00:31
поделиться

Нет причин, по которым вы не можете развить сильные объектно-ориентированные навыки через Javascript - но Javascript является объектно-ориентированным языком, основанным на прототипах, что сильно отличается от других основных объектно-ориентированных языков (C++, Java и т.д.), которые основаны на классах.

Вам следует как можно скорее ознакомиться с обеими моделями (как только вы освоите основы javascript), чтобы вы могли без особых затруднений изучать дискуссии о моделях, основанных на классах.

Наконец, если вы еще не знакомы с Дугласом Крокфордом, я настоятельно рекомендую посетить его сайт, прочитать его статью JavaScript: The World's Most Misunderstood Programming Language, а затем прочитать его книгу Javascript: the Good Parts.

3
ответ дан 2 December 2019 в 00:31
поделиться

Я отвечу "Нет".

Я работал с несколькими разработчиками javascript, и я всегда мог сказать, кто из них был родом из JavaScript, а кто из Java/C#/Delphi

BTW, это не дискредитация javaScript, просто наблюдение.

0
ответ дан 2 December 2019 в 00:31
поделиться

Я советую вам попрактиковаться с языками, которые позволяют создавать высокоуровневые паттерны без особых мучений... например, почему бы не Python?

Что касается Javascript, этот пост нашего Джоэла можно быстро прочитать и сразу перейти к делу:

Может ли ваш язык программирования сделать это?

0
ответ дан 2 December 2019 в 00:31
поделиться

Я сам считаю "JAVA" самой сильной объектно-ориентированной программой, с которой я сталкивался, я действительно рекомендую ее для развития навыков ООП.

Удачи, приятель :)

-1
ответ дан 2 December 2019 в 00:31
поделиться

Я в основном разрабатываю на C# и JavaScript.

К сожалению, я не встречал человека, который разрабатывал бы только на JavaScript и имел бы сильные навыки ООП.

Однако это определенно возможно. В JavaScript заложены все концепции ООП. Вам просто нужно научиться правильно использовать наследование прототипов для достижения своих целей (или научиться с помощью фреймворка вроде MooTools, что в некотором смысле сводит на нет всю цель).

1
ответ дан 2 December 2019 в 00:31
поделиться

Если вы хотите изучить ООП, но вам нужен "легкий" скриптовый язык для этого, вам, вероятно, лучше работать на ActionScript через Flex.

0
ответ дан 2 December 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: