Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 16.08.2016, 20:49
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от DivMan
что бы понять прототипы
Для практики можешь понимать так. Там где внутри функции this, там снаружи в дизайн-тайм - prototype.

Прототипирование - это ниточка с бусами, ну, цепочка, оно так и называется prototype chain. Просто выделили проперть с зарезервированным именем для связи между объектами и протащились.

А в классах наследование - это метафора наложения одного чертежа на другой чертеж. Ну или как в мультипликации наложение одного целлулоида на другой.
Ответить с цитированием
  #32 (permalink)  
Старый 16.08.2016, 20:52
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Как эта цепочка работает. Когда интепретатор не находит затребованного метода или свойства, он обращается к проперти - прототип и, если в нее воткнут какой-то объект, интепретатор начинает искать затребованное в том объекте, и если там нету - к его прототипу и так шуршит объектами проникая в следующий через прототип если определено, пока не упрется. ))) Тогда уже делает эксепшн и ты читаешь про ундефайнед.
Ответить с цитированием
  #33 (permalink)  
Старый 16.08.2016, 21:01
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Изначально жаба скрипучая была создана для написания простых сценарием взаимодействия юзера с элементами веб-страницы. То есть изначально она не предназначена для индустриального программирования, а само индустриальное программирование с каждым днем уходило все дальше за горизонты этой жабы, а жабные программисты со всей силы выкручивались пытаясь догнать радугу и плели эти прототипы как ловкие пауки. Ну вот, в новой версии интерпретатора сделали наконец-то чертежи, то есть классы и тем самым приблизили этот пластилин к промышленному стандарту.
Ответить с цитированием
  #34 (permalink)  
Старый 16.08.2016, 21:05
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

но эти же классы работают по принципу прототипов?
Ответить с цитированием
  #35 (permalink)  
Старый 16.08.2016, 21:18
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Нет. Прототип - это дерево наподобие папок в твоем компе. Когда в этой папке нет искомого файла, ОС пытается искать его в следующей папке, если в ней нет - в следующей и так пока папки не кончатся или файл будет найден. Функции как объекты в жабе тоже не чертежи, поскольку создавать из них экземпляр не требуется. А класс - это чертеж. Сам по себе это просто код, который нельзя запустить как объект, сперва надо сделать из него объект. И в этом вся мякотка, что ты можешь модифицировать чертежи ДО того, как из них будут произведены объекты, а прототипирование работает только с живыми объектами.

Последний раз редактировалось warren buffet, 16.08.2016 в 21:21.
Ответить с цитированием
  #36 (permalink)  
Старый 16.08.2016, 21:22
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

возьми меня в ученики
Ответить с цитированием
  #37 (permalink)  
Старый 16.08.2016, 21:24
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Есть разновидность тн статических классов, с которых не делается экземпляр. Есть абстрактные классы, из которых по условию абстрактности нельзя делать экзепляр, с них можно только наследоваться. Это уже тонкости, которых может быть и нету в новой жабе. Я не проверял.
Ответить с цитированием
  #38 (permalink)  
Старый 16.08.2016, 21:25
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

DivMan, ты с форума переключись на местную документацию, там русским языком все написано и получше наверно чем я тут калякаю.
Ответить с цитированием
  #39 (permalink)  
Старый 16.08.2016, 21:32
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Почитал что там пишут. Когда-то это было интересным, но теперь инфа уже серьезно устарела, в частности __proto__ этот уже считается юзать некомильфо, типа колхозный стайл. Но ты можешь вот тут почитать о плюсах и минусах https://learn.javascript.ru/classes

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

DivMan и вообще. Первое, что надо понять в отношении ООП вообще - зачем оно нужно и всякий раз приступая к реализации какой-то фичи понимать, нужны тут объекты, прототипы или может быть понадобятся или легко обойтись функцией с несколькими функциями внутри.

Последний раз редактировалось warren buffet, 16.08.2016 в 21:37.
Ответить с цитированием
  #40 (permalink)  
Старый 16.08.2016, 21:35
Профессор
Отправить личное сообщение для DivMan Посмотреть профиль Найти все сообщения от DivMan
 
Регистрация: 08.03.2016
Сообщений: 429

А можно ли вообще обойтись без ООП, в сложных проектах?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание Конструктора sheckler Элементы интерфейса 1 25.05.2015 12:02
Создание функции вне прототипа e41zytp Общие вопросы Javascript 7 21.05.2014 11:44
Создание прототипа функции Chiz Events/DOM/Window 8 30.10.2013 22:31
Создание своей библиотеки. Создание двух одинаковых объектов. Как избежать? IDCh Javascript под браузер 2 31.10.2012 12:53
Создание скрипта "Итеррационные циклы" по формуле krasopetka Общие вопросы Javascript 0 17.11.2011 12:42