01.09.2016, 08:41
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Ostic,
В смысле плюсов и жабы нет, собственно, в плюсах и жабе ООП вообще нет, там нечто, что *принято* называть ООП, по недоразумению. Алан Кей, как известно, не это имел в виду. Соответственно, о наличии там классов тоже как то с натяжкой можно говорить. Короче, то что в плюсах и жабе принято называть классами -- это миксины по сути.
|
|
01.09.2016, 08:46
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Сообщение от Ostic
|
почему класс называется function()
|
функции классами часто называют и в JS. Но это только дебилы. Это функции-конструкторы, как правило имеются в виду
|
|
01.09.2016, 16:27
|
Аспирант
|
|
Регистрация: 31.08.2016
Сообщений: 49
|
|
Сообщение от ksa
|
Видать тебя все ждали.
|
а это хамством попахивает.
такое в глаза надо говорить, герой компьютерный.
Сообщение от destus;
|
А какой тогда смысл в классах? Если у объектов будет разный набор свойств
|
пожалуй, что да, вы правы - специфика JS
Сообщение от warren buffet;
|
Это объект, инстансь, а класс - это текст.
|
согласен, естественно, но, думаю понятно, что это неточность.
хотя после того как в JS function ...
Сообщение от scrollquest;
|
Алан Кей, как известно, не это имел в виду
в плюсах и жабе ООП вообще нет
|
вот только не надо... Алан Кей...
я вам больше скажу:"там вообще кроме транзисторов и прочих нанометровых элементов ничего нет..."
давайте об этом не будем, а то уйдем далеко в мат логику и теорию КА.
|
|
02.09.2016, 05:59
|
Профессор
|
|
Регистрация: 16.06.2013
Сообщений: 172
|
|
Я не супер спец но мне TypeScript более человекопонятный и логичный - есть класс, в нем есть конструктор, есть методы, а в JS все понарошку, типа давай напишем function() и понарошку назовем это классом или конструктором, другую function тоже понарошку назовем функцией, более того - можно написать третий раз function и также понарошку назвать методом.
Это не плохо и не хорошо если привыкнуть. Тем более и привыкать то особо не надо - запомнил и все дела.
Ну или забыть чему тебя Javы и другие CLASSные языки учили и принять немного другой подход JS.
Последний раз редактировалось Bond, 02.09.2016 в 06:16.
|
|
02.09.2016, 07:57
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Bond, js что-то вроде https://en.wikipedia.org/wiki/Value_object или атома водорода из которого непостижимым образом можно сделать золото и бриллианты. А твое мировоззрение креационистское, типа бог создал класс и увидел что это хорошо. На второй день он создал конструктор, на третий деструктор, затем допилил геттеры и сеттеры и в пятницу забухал и бухает до сих пор.
|
|
02.09.2016, 08:03
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сообщение от destus
|
Если у объектов будет разный набор свойств.
|
Это называется как будто lazy binding. Я давно не читаю ничего по прог-сайнс и забыл что читал. Смысл в том, что тебе не надо знать какие там могут быть свойства и методы заранее, а надо их создавать и применять по требованию. В php все это делается легко благодаря __get, __set, __call, __invoke, etc.
|
|
02.09.2016, 10:47
|
Аспирант
|
|
Регистрация: 31.08.2016
Сообщений: 49
|
|
Сообщение от Bond
|
Ну или забыть чему тебя Javы и другие CLASSные языки учили и принять немного другой подход JS.
|
просто поначалу наступает шизофрения: вчера сел на Си писать и область видимости теряю
понятно же что создавая автоматическую переменную
i за операторными скобками не видна, а я 2 дня подряд сплю по 3 часа и до 6 утра читаю местный учебник и уже сомневаюсь - а не будет ли она видна снаружи?
конструкции типа (func)(), в которые вкладывается совсем разные смыслы...
в том же Си там сортировки, случайные числа (можно по терверу эксперименты ставить), хэш-функции самописанные, деревья(красно-черные и ван эмде боаса), очереди (хоть на списках, хоть на массивах... биномиальные) и т.д. и т.д. и главное четко понимаешь как это работает, сколько памяти потребляет.
а js это совсем иное: более начетническое, тк если не знаешь, как свойство или метод называется, то "давай, дасвиданья"...
сегодня читаю про jQuery. сначала я не мог понять почему такой ажиотаж вокруг jQ, тк глядя на чистый код и глядя на jQ поначалу подумал:"зачем такое городить? надо писать на "чистом" js!" но прочитав несколько глав испытал неописуемое облегчение.
имхо вообще все к jQ придет и через пару лет может и вообще кто интерпретатор напишет(сохранив прежний синтаксис) я бы на это ставку делал.
|
|
02.09.2016, 11:24
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Сообщение от warren buffet
|
Это называется как будто lazy binding
|
не lazy а late, и это к наборам полей конкретного экземпляра не имеет ни малейшего отношения, это означает лишь то, что резольвинг происходит в рантайме, в момент вызова.
Последний раз редактировалось scrollquest, 02.09.2016 в 11:28.
|
|
02.09.2016, 16:46
|
Профессор
|
|
Регистрация: 16.06.2013
Сообщений: 172
|
|
Ostic,
jQuery всего лишь библиотека, в философию JS ничего нового не приносит, просто добавляет некоторого удобства работы с DOM и Ajax, кроссбраузерности и на ООП не влияет. Вот фреймворки теоретически может и могли бы повлиять или по крайней мере могли бы направить в другой русло, а библиотека есть библиотека - всего лишь прицепчик с удобствами который максимум что сможет сделать - это добавить пару тройку функций в новый стандарт JS
|
|
02.09.2016, 18:14
|
Аспирант
|
|
Регистрация: 21.08.2016
Сообщений: 77
|
|
Bond,
То что реально и кардинально может изменить(в тч улучшить, сделать мощней) ООП в JS -- это Proxy. Это, фактически, ключ к созданию своей собственной ООП-модели, синтаксически совместимой с нативным синтаксисом
|
|
|
|