Какой тип языка JavaScript - PullRequest
       5

Какой тип языка JavaScript

2 голосов
/ 08 ноября 2010

Я нахожусь в начальном классе HTML, и наш учебник говорит, что JavaScript - это язык сценариев на основе .В нашей викторине один из вопросов звучал так: «JavaScript - это объектно-ориентированный язык сценариев , True или False».Я поставил False, потому что, насколько я понимаю, объектно-ориентированный и объектно-ориентированный это две разные вещи.Я неправильно понял ответ.

Является ли JavaScript действительно объектно-ориентированным языком?

Спасибо за любые разъяснения, которые вы можете дать!

Ответы [ 9 ]

9 голосов
/ 08 ноября 2010

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

http://en.wikipedia.org/wiki/Prototype-based_programming - полезный справочник.

4 голосов
/ 08 ноября 2010

Определение объектно-ориентированного иногда бывает субъективным. Для некоторых любой язык, который имеет дело с «Объектами», является объектно-ориентированным. Для других весь язык и его конструкция должны использовать объекты, считающиеся объектно-ориентированными (например, SmallTalk или Java).

В javascript вы можете написать скрипт, в котором нет объектов или вы можете создать сильно объектно-ориентированный код. Называете ли вы это объектно-ориентированным или нет, на самом деле зависит от того, какую школу мысли вы придерживаетесь.

2 голосов
/ 08 ноября 2010

Я бы сказал, что объектно-ориентированный это не особенность языков программирования, это особенность кода. Код не становится объектно-ориентированным, основанным на прототипах или функциональным просто потому, что он написан на определенном языке, он получает такое качество только в том случае, если автор использует этот стиль.

Конечно, имеет смысл называть язык наподобие объектно-ориентированного языка Java, так как язык разработан специально для этой парадигмы, но JavaScript хорошо работает с множеством различных парадигм, поэтому вы действительно не можете наклеить на него наклейку.

1 голос
/ 08 ноября 2010

Javascript - это расширенный набор ECMAScript, который является мультипарадигмальным (функциональным, процедурным), основанным на прототипах, функциональным императивным языком сценариев с утиной / слабой / динамической типизацией и находится под влиянием Perl, C, Python, Java,Схема.

ECMAScript был создан Бренданом Эйхом.Источник: http://en.wikipedia.org/wiki/ECMAScript

Он принимает конструкции C, такие как if и else и for, но также имеет closures и lambdas из схемы, а также наследование prototype-based отSelf, так что он может быть использован OO способом.

1 голос
/ 08 ноября 2010

Этот ответ, я уверен, был дан ответ в другом месте .... объект- на основе и объект- ориентированный это одно и то же, взаимозаменяемо.На самом деле нет никакой разницы в терминологии - некоторые предпочитают одно над другим.

Чтобы ответить на ваш вопрос, да, Javascript - это объект - ориентированный или объектный - на основе .

0 голосов
/ 08 ноября 2010

Если ваш опрос не определил ни «объектно-ориентированный», ни «язык сценариев», я не могу понять, как вы можете ожидать ответа на вопрос.

0 голосов
/ 08 ноября 2010

Объектно-ориентированные основы существуют, но структурированы иначе, чем другие более распространенные объектно-ориентированные языки, такие как C # и Java.Вы можете создавать конструкторы и методы объекта, а также получать доступ к свойствам объекта и получать их.JavaScript изначально разрабатывался как полностью объектно-ориентированный язык, но каким-то образом находился под влиянием Perl и Python и, следовательно, текущих программных идиом.

Что не так с этой объектно-ориентированной нотацией в javascript?

function Class( name, teacher ) {
  this.name = name;
  this.teacher = teacher;
}
0 голосов
/ 08 ноября 2010

Термин объектно-ориентированное программирование (ООП) в целом не очень хорошо определен. См. Примечание Джонатана Риса на OO: Rees на OO . Javascript имеет ОО-модель, основанную на концепции, названной прототипы . Модель на основе прототипа отличается от модели, используемой в Java или C ++, но она, безусловно, подпадает под общий зонтик, основанный на языках на основе ООП.

Возможно, термин "объектный" был использован для подчеркивания этого факта о javascript. Он использует объекты, но не в том же ключе, что и Java или C ++ (или C #).

0 голосов
/ 08 ноября 2010

Объектно-ориентированный, объектно-ориентированный, в основном одно и то же. У меня сложилось впечатление, что объектно-ориентированный немного строже, чем объектно-ориентированный.

Объектно-ориентированный подразумевает, что язык использует идею инкапсуляции состояния и операций внутри «объектов».

Объектно-ориентированный означает, что язык предназначен для программирования с объектами.

Разница довольно незначительная. См. Статьи Википедии по объектно-ориентированному языку и объектно-ориентированному программированию , чтобы получить более точное представление о разнице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...