Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.09.2012, 17:36
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Maxmaxmахimus
давай так давай называть поля полями, в полях могут быть свойства и методы. перепиши свое сообщение с этой терминалогиеу)
Нет, давай называть "свойства" - "свойствами", а не "полями".

Лучше я поясню на коде.

function Constructor () {}

Constructor.prototype.method = function (){}; // Наследуемое свойство method.

var object = new Constructor();
object.method = function (){}; // Наследуемое свойство перекрыто.

// Теперь при работе с объектом object нужно обращаться к свойствам напрямую:
object.method();

// но никак не:
object.constructor.prototype.method.call(method);
// Или через костыли, вроде твоего.


Подобные записи говорят о том, что наследование реализовано криво с точки зрения ООП. Потомок ничего не должен знать о своих предках, они умерли для него. У него есть только то, что он унаследовал или приобрел. Для того, что бы не копипастить реализации методов и при этом иметь возможность выполнять методы предков существует делегирование, которое реализуется в коде перекрываемого метода:

object.method = function (){
// some code
return this.constructor.prototype.method.call(this);
};


Так понятно?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #12 (permalink)  
Старый 24.09.2012, 17:58
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Хватит тупить. Достал.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #13 (permalink)  
Старый 24.09.2012, 18:00
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmахimus
Ну ка покажи как это выгладило бы с твоей твоей реализацией ООП
Я же показал. MyClass.num = 0; и инкрементировать при каждом вызове конструктора.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #14 (permalink)  
Старый 24.09.2012, 18:05
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmахimus
Покажи код
Что непонятно?
Сообщение от B~Vladi
Хватит тупить. Достал.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #15 (permalink)  
Старый 24.09.2012, 18:09
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Maxmaxmахimus
у тебя MyClass еще не существует когда определяются методы.
Да, и что?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #16 (permalink)  
Старый 24.09.2012, 18:15
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

ок
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #17 (permalink)  
Старый 24.09.2012, 20:55
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Вот вы развели дискуссию... Какая вообще разница в том кто как расширяет объекты, кому как удобно, благо JavaScript это с легкостью позволяет... И обкакивать тот или иной способ вообще не вижу смысла.

Сообщение от B~Vladi
Если нужно обратиться к свойству предка - значит наследование построено неверно, либо кривая реализация у перекрывающего свойства (это относится только к методам).
Я вот тоже тебя не понял? Речь то явно идет не о том что бы обращаться к родительским методам снаружи, а дело в том, что к свойствам предка может и часто нужно обращаться из самого класса перекрывателя свойств... То есть ребенок может обращаться к родительским свойствам, для этих целей во многих языках и используются конструкции parent, super и т.д.

А вот если нужно снаружи получить вызов родительского свойства, то это это уже конечно не правильно. И я так понимаю ты именно это и имел ввиду. В этом случае конечно же наследование будет построено не правильно.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #18 (permalink)  
Старый 25.09.2012, 02:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Дзен-трансгуманист
значит у вас кривой дизайн.
речь не о моем дизайне... Читайте пост внимательнее и предложения до конца. А не вырезайте отрывки из него:
Сообщение от devote
А вот если нужно снаружи получить вызов родительского свойства, то это это уже конечно не правильно.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #19 (permalink)  
Старый 25.09.2012, 16:36
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Дзен-трансгуманист
Я просто перефразировал принцип KISS по отношению к ООП.
где можно почитать про KISS в JS ?
Ответить с цитированием
  #20 (permalink)  
Старый 25.09.2012, 18:04
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от devote
дело в том, что к свойствам предка может и часто нужно обращаться из самого класса перекрывателя свойств... То есть ребенок может обращаться к родительским свойствам, для этих целей во многих языках и используются конструкции parent, super и т.д.
Приведи пример, когда это нужно.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Небольшая помощь - не бесплатно, конечно. infirmamoriendum Работа 17 12.07.2012 01:55
Небольшая помощь - не бесплатно, конечно. infirmamoriendum Общие вопросы Javascript 9 09.07.2012 11:35
Нужна небольшая программа. Сегодня :) danilalomaster Работа 1 04.01.2010 23:58
Есть небольшая работа для пишущего на javascript. Trooper Работа 0 30.04.2009 08:57
небольшая работа - интерфейс в ява скрипте :) int9 Работа 0 08.12.2008 22:51