Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.09.2016, 08:41
Аспирант
Отправить личное сообщение для scrollquest Посмотреть профиль Найти все сообщения от scrollquest
 
Регистрация: 21.08.2016
Сообщений: 77

Ostic,
В смысле плюсов и жабы нет, собственно, в плюсах и жабе ООП вообще нет, там нечто, что *принято* называть ООП, по недоразумению. Алан Кей, как известно, не это имел в виду. Соответственно, о наличии там классов тоже как то с натяжкой можно говорить. Короче, то что в плюсах и жабе принято называть классами -- это миксины по сути.
Ответить с цитированием
  #12 (permalink)  
Старый 01.09.2016, 08:46
Аспирант
Отправить личное сообщение для scrollquest Посмотреть профиль Найти все сообщения от scrollquest
 
Регистрация: 21.08.2016
Сообщений: 77

Сообщение от Ostic
почему класс называется function()
функции классами часто называют и в JS. Но это только дебилы. Это функции-конструкторы, как правило имеются в виду
Ответить с цитированием
  #13 (permalink)  
Старый 01.09.2016, 16:27
Аспирант
Отправить личное сообщение для Ostic Посмотреть профиль Найти все сообщения от Ostic
 
Регистрация: 31.08.2016
Сообщений: 49

Сообщение от ksa Посмотреть сообщение
Видать тебя все ждали.
а это хамством попахивает.
такое в глаза надо говорить, герой компьютерный.
Сообщение от destus;
А какой тогда смысл в классах? Если у объектов будет разный набор свойств
пожалуй, что да, вы правы - специфика JS
Сообщение от warren buffet;
Это объект, инстансь, а класс - это текст.
согласен, естественно, но, думаю понятно, что это неточность.
хотя после того как в JS function ...
Сообщение от scrollquest;
Алан Кей, как известно, не это имел в виду
в плюсах и жабе ООП вообще нет
вот только не надо... Алан Кей...
я вам больше скажу:"там вообще кроме транзисторов и прочих нанометровых элементов ничего нет..."
давайте об этом не будем, а то уйдем далеко в мат логику и теорию КА.
Ответить с цитированием
  #14 (permalink)  
Старый 02.09.2016, 05:59
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Я не супер спец но мне TypeScript более человекопонятный и логичный - есть класс, в нем есть конструктор, есть методы, а в JS все понарошку, типа давай напишем function() и понарошку назовем это классом или конструктором, другую function тоже понарошку назовем функцией, более того - можно написать третий раз function и также понарошку назвать методом.
Это не плохо и не хорошо если привыкнуть. Тем более и привыкать то особо не надо - запомнил и все дела.
Ну или забыть чему тебя Javы и другие CLASSные языки учили и принять немного другой подход JS.

Последний раз редактировалось Bond, 02.09.2016 в 06:16.
Ответить с цитированием
  #15 (permalink)  
Старый 02.09.2016, 07:57
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Bond, js что-то вроде https://en.wikipedia.org/wiki/Value_object или атома водорода из которого непостижимым образом можно сделать золото и бриллианты. А твое мировоззрение креационистское, типа бог создал класс и увидел что это хорошо. На второй день он создал конструктор, на третий деструктор, затем допилил геттеры и сеттеры и в пятницу забухал и бухает до сих пор.
Ответить с цитированием
  #16 (permalink)  
Старый 02.09.2016, 08:03
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от destus
Если у объектов будет разный набор свойств.
Это называется как будто lazy binding. Я давно не читаю ничего по прог-сайнс и забыл что читал. Смысл в том, что тебе не надо знать какие там могут быть свойства и методы заранее, а надо их создавать и применять по требованию. В php все это делается легко благодаря __get, __set, __call, __invoke, etc.
Ответить с цитированием
  #17 (permalink)  
Старый 02.09.2016, 10:47
Аспирант
Отправить личное сообщение для Ostic Посмотреть профиль Найти все сообщения от Ostic
 
Регистрация: 31.08.2016
Сообщений: 49

Сообщение от Bond Посмотреть сообщение
Ну или забыть чему тебя Javы и другие CLASSные языки учили и принять немного другой подход JS.
просто поначалу наступает шизофрения: вчера сел на Си писать и область видимости теряю
понятно же что создавая автоматическую переменную
Код:
 {int i;}
i за операторными скобками не видна, а я 2 дня подряд сплю по 3 часа и до 6 утра читаю местный учебник и уже сомневаюсь - а не будет ли она видна снаружи?
конструкции типа (func)(), в которые вкладывается совсем разные смыслы...
в том же Си там сортировки, случайные числа (можно по терверу эксперименты ставить), хэш-функции самописанные, деревья(красно-черные и ван эмде боаса), очереди (хоть на списках, хоть на массивах... биномиальные) и т.д. и т.д. и главное четко понимаешь как это работает, сколько памяти потребляет.
а js это совсем иное: более начетническое, тк если не знаешь, как свойство или метод называется, то "давай, дасвиданья"...
сегодня читаю про jQuery. сначала я не мог понять почему такой ажиотаж вокруг jQ, тк глядя на чистый код и глядя на jQ поначалу подумал:"зачем такое городить? надо писать на "чистом" js!" но прочитав несколько глав испытал неописуемое облегчение.
имхо вообще все к jQ придет и через пару лет может и вообще кто интерпретатор напишет(сохранив прежний синтаксис) я бы на это ставку делал.
Ответить с цитированием
  #18 (permalink)  
Старый 02.09.2016, 11:24
Аспирант
Отправить личное сообщение для scrollquest Посмотреть профиль Найти все сообщения от scrollquest
 
Регистрация: 21.08.2016
Сообщений: 77

Сообщение от warren buffet
Это называется как будто lazy binding
не lazy а late, и это к наборам полей конкретного экземпляра не имеет ни малейшего отношения, это означает лишь то, что резольвинг происходит в рантайме, в момент вызова.

Последний раз редактировалось scrollquest, 02.09.2016 в 11:28.
Ответить с цитированием
  #19 (permalink)  
Старый 02.09.2016, 16:46
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Ostic,
jQuery всего лишь библиотека, в философию JS ничего нового не приносит, просто добавляет некоторого удобства работы с DOM и Ajax, кроссбраузерности и на ООП не влияет. Вот фреймворки теоретически может и могли бы повлиять или по крайней мере могли бы направить в другой русло, а библиотека есть библиотека - всего лишь прицепчик с удобствами который максимум что сможет сделать - это добавить пару тройку функций в новый стандарт JS
Ответить с цитированием
  #20 (permalink)  
Старый 02.09.2016, 18:14
Аспирант
Отправить личное сообщение для scrollquest Посмотреть профиль Найти все сообщения от scrollquest
 
Регистрация: 21.08.2016
Сообщений: 77

Bond,
То что реально и кардинально может изменить(в тч улучшить, сделать мощней) ООП в JS -- это Proxy. Это, фактически, ключ к созданию своей собственной ООП-модели, синтаксически совместимой с нативным синтаксисом
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП в javascript. Алгоритмы построения приложений dmitry111 Оффтопик 17 08.06.2013 20:18
ООП в javascript iostream21 Общие вопросы Javascript 11 12.07.2012 00:16
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
JavaScript: ООП Ars_Art Общие вопросы Javascript 13 09.02.2010 02:32