Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 04.12.2014, 19:37
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от devote
если любой может изменить приватные значения
Что значит любой. Изменить может только конкретный экземпляр, хозяин своей персональной переменной.
Ответить с цитированием
  #62 (permalink)  
Старый 04.12.2014, 19:40
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от krutoy
хозяин своей персональной переменной.
Ну значит наследование в пролете..
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #63 (permalink)  
Старый 04.12.2014, 19:41
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

devote,
Откройте глаза Там показано наследование. Или вы какую-то конкретную фичу имеете в виду. Поясните. Вы хотите чтобы приватная переменная наследовалась, или чо? тогда какая она нахер приватная.

Последний раз редактировалось krutoy, 04.12.2014 в 19:46.
Ответить с цитированием
  #64 (permalink)  
Старый 04.12.2014, 20:01
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от krutoy
Откройте глаза Там показано наследование.
ты не понял, у тебя наследование это создание методов в прототипе, но методы прототипа не видят приватную переменную... Что бы ее получить ты создал методы set/get что уже открывает переменную наружу... А вот нужно сделать так, что бы методы в прототипе тоже могли получать доступ к приватным значениям, но при этом что бы к ним не было доступа снаружи. Без всяких там методов get/set

Но если ты будешь совать все в конструктор, то наследование теряется.. Если же в прототипы, то тогда и нет доступа к приватным данным не открывая их наружу через какие-то там методы.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #65 (permalink)  
Старый 04.12.2014, 20:09
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от devote
что уже открывает переменную наружу
Каким образом?
Ответить с цитированием
  #66 (permalink)  
Старый 04.12.2014, 20:20
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от krutoy
Каким образом?
неужели совсем не очевидно?
// это твой класс, как бы с приватными переменными
var instance = new YourClass;

// а вот что я делаю с экземпляром твоего класса

// теперь приватную переменную я буду хранить тут, вытащил наружу
var private = instance.get();
// переопределяем метод получения значения
instance.get = function() {return private;}
// переопределяем метод установки значения
instance.set = function(value) {private = value;}
Теперь видно что вся работа с переменной проходит через переопределенные методы, а это значит что приватности тут ноль... Ибо я могу легко сломать функционал класса.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #67 (permalink)  
Старый 04.12.2014, 20:24
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от devote
А вот нужно сделать так, что бы методы в прототипе тоже могли получать доступ к приватным значениям, но при этом что бы к ним не было доступа снаружи
ЯННП. Это тогда будет приватная переменная для класса, а не для экземпляров, или как? Если это надо, думаю, такое тоже можно реализовать. Но даник хотел именно это изначально, поэтому я сделал, то что он хотел, а приватная для класса -- это уже другой вопрос.
Ответить с цитированием
  #68 (permalink)  
Старый 04.12.2014, 20:28
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

devote,
Ты переопределил методы, а не саму переменную. Никто не говорил, что методы будут приватными, об этом речь не шла.
Ответить с цитированием
  #69 (permalink)  
Старый 04.12.2014, 20:31
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

devote,
И нахрен вообще нужен этот гемор, мы что, в шпионов играем чтоли?
Ответить с цитированием
  #70 (permalink)  
Старый 04.12.2014, 20:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от krutoy
Никто не говорил, что методы будут приватными, об этом речь не шла.
речь шла о переменных, которые доступны всем методам из класса но что бы до них не могли добраться снаружи (это и называется инкапсуляция)... Я думаю об этом и говорилось выше.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать кнопку, для проигрывания музыки! Как? Foleyer Общие вопросы Javascript 13 11.04.2013 16:43
Подскажите как создать пиксельную сетку sovereignsouls Элементы интерфейса 5 01.03.2013 10:37
Как создать задержку перед .html() Could jQuery 1 17.07.2011 13:42
Как создать Дата,время,открытие сайта Антон Internet Explorer 1 11.12.2008 22:44
как создать елемент с вложеными елементами scuter Events/DOM/Window 11 14.05.2008 16:15