LINUX.ORG.RU

Шо то безупречно шо это

makoven ★★★★★
()

Про PHP не скажу, но мне как человеку долго программировавшему на java, на TypeScript писать комфортно. Там есть и классы, и интерфейсы, и миксины, плюс привычные модификаторы области видимости, статическая типизация и даже дженерики, т.е. ни чем не хуже современных объектно-ориентированных языков.

Aber ★★★★★
()

Чем отличается ООП JS от PHP?

Всем. Абсолютно разные принципы и разновидности.

resurtm ★★★
()
Ответ на: комментарий от ritsufag

Там даже нет модификаторов доступа.

Много где нету, в упомянутом smalltalk и python тоже нету скрытия. Согласен с тем, что ООП в js не сахар, потому как ООП реализуется на абстракциях js, который из коробки не ООП в классическом смысле. Просто кто-то любит вручную прописывать логику создания классов, кто-то пользуется фреймворком с собственными велосипедами для классов и наследования, мне лично легче использовать TS с трансляцией в JS.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от ritsufag

Это синтаксический сахар.

ООП это и есть синтаксический сахар. Да что уж там, большинство ЯП - синстаксический сахар над АСМом

Dred ★★★★★
()
Ответ на: комментарий от Aber

Много где нету, в упомянутом smalltalk и python тоже нету скрытия

Можно сказать проще - во всех языках с динамической типизацией.

anonymous
()
Ответ на: комментарий от ritsufag

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

anonymous
()
Ответ на: комментарий от anonymous

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

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от anonymous

с одного подчеркивания - protected, с двух - private.

Буду знать.

Aber ★★★★★
()
Ответ на: комментарий от resurtm

Но ведь тогда С99 — синтаксический сахар над ANSI C!

a1batross ★★★★★
()

В PHP есть из коробки: интерфейсы, примеси, абстрактные классы, наследование что несомненно дает большие возможности. Этого в JS нет, но можно в той или иной степени реализовать.

anonymous
()

Лучше - для кого? В js - прототипы, ибо скрипт - надо чтоб быстро работало, мало парсилось. В PHP - полновесные классы, ибо бякенд и опкод. Само OOP намного круче выглядит в PHP, но JS такая крутота просто не нужна, цели у него другие.

anonymous
()
Ответ на: комментарий от Deleted

Наверное, рефлексию и биндинги подразумевает. Если захотеть, можно довольно несложно приватные методы объекта и в PHP, и в JAVA достать. Только это дополнительные усилия, без хорошей причины на фиг такое надо...

anonymous
()
Ответ на: комментарий от Jaberwock

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

Aber ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.