Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2013, 14:57
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

prototype в реальной жизни
начитался о prototype но не могу придумать куда его на практике применить
встретил такое, но по моему только лишний код, проще функции вызывать
var mainPage = null;
$(function(){
  mainPage = new CMainPage();
});

var CMainPage = function()
{
  this.init();
};

CMainPage.prototype.init = function()
{
  this.initSlider();
};

CMainPage.prototype.initSlider = function(){
...
}

чем это лучше такого?
$(function(){
  initSlider();
});

initSlider = function(){
...
}

может памяти меньше занимает т.к. функии в одном объекте или ещё что

реквестирую пример использования prototype из реальной практики по работе с DOM, где обычно нужно что-то скрыть/показать/переместить...
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2013, 15:16
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

ты вообще понимаешь что такое ООП?

Последний раз редактировалось megaupload, 22.03.2013 в 15:20.
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2013, 15:17
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

да, не понимаю как этот подход применить к управлению DOM
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2013, 15:21
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

я вот тоже не понимаю каким образом обьектно ориентированное программирование основанное на прототипном наследовании ВООБЩЕ связанно с работой с DOM)
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2013, 15:28
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

можно же обработку событий добавлять через прототипы, но не пойму зачем) а в учебниках примеры с птичками и партами
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2013, 15:28
Аспирант
Отправить личное сообщение для jsgeek Посмотреть профиль Найти все сообщения от jsgeek
 
Регистрация: 13.02.2013
Сообщений: 34

animhotep,
К примеру добавить какой нибудь метод для работы с элементом. Допустим добавить в прототип метод hide() скрывающий элемент и тогда можно будет любой элемент скрыть вызовом
el.hide()
Или допустим напишешь метод ajaxReload() который при вызове обновляет содержимое элемента данными с сервера
el.ajaxReload()
. Удобно однако
В общем прототип это объект содержащий методы и свойства доступные тем кто его наследует. Эти методы и свойства создаются только один раз а значит потребляется меньше памяти чем если бы ты в каждый объект добавлял аналогичные методы или свойства.

Последний раз редактировалось jsgeek, 22.03.2013 в 15:30.
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2013, 15:37
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

я вроде понял что он такое и как работает..
Сообщение от jsgeek
Допустим добавить в прототип метод hide() скрывающий элемент и тогда можно будет любой элемент скрыть вызовом
а можно написать функцию hide = function(el){}, и вызывать hide(el)
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2013, 15:47
Аспирант
Отправить личное сообщение для jsgeek Посмотреть профиль Найти все сообщения от jsgeek
 
Регистрация: 13.02.2013
Сообщений: 34

Конечно можно. Но зачем засорять область видимости специфичной функцией? К тому же прототипы удобнее и нагляднее использовать:
По твоему методу
hide(document.getElementById('some'));

С прототипом
document.getElementById('some').hide();

PS
Когда только начал использовать JS тоже противился прототипам, но после прочтения Флэнагана и JavaScript Шаблоны понял всю мощь и удобство их использования.

Последний раз редактировалось jsgeek, 22.03.2013 в 15:52.
Ответить с цитированием
  #9 (permalink)  
Старый 22.03.2013, 16:09
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

если дело только в именах то мне их не жалко)

Сообщение от jsgeek
Флэнагана и JavaScript Шаблоны
это она? http://www.ozon.ru/context/detail/id/3881091/ у меня следующая на очереди прочтения, может после неё дойдёт)
Ответить с цитированием
  #10 (permalink)  
Старый 22.03.2013, 16:18
Аспирант
Отправить личное сообщение для jsgeek Посмотреть профиль Найти все сообщения от jsgeek
 
Регистрация: 13.02.2013
Сообщений: 34

Да, она. Только есть более новая 2012 года.
JavaScript Шаблоны описывает лучшие практики работы с JS.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конфликт prototype и mootools Lutsk Библиотеки/Тулкиты/Фреймворки 0 22.02.2012 20:34
Перевести код с prototype в jquery alexey_samara jQuery 2 07.12.2010 16:52
Создание копий объекта - обязателен ли prototype? heh131 Общие вопросы Javascript 12 15.05.2010 12:55
Prototype v1.4.0 and Prototype v1.5.1_rc3 prihod Prototype & script.aculo.us 2 02.10.2008 16:08
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56