Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 27.12.2011, 16:00
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
Это наследование прототипа. В прототипе не только методы, но и обычные свойства.
Но конструктор это ведь не прототип?
Ответить с цитированием
  #22 (permalink)  
Старый 27.12.2011, 16:01
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

FINoM,
Причём тут конструктор? Хочешь наследование конструкторов, делай их отдельно, запуская старый конструктор в новом, как это делают в NodeJS. Либо пиши функцию аля createClass/defineClass.

Наследование прототипа никак не относится к конструктору.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #23 (permalink)  
Старый 27.12.2011, 16:06
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
Наследование прототипа никак не относится к конструктору.
Я тебе говорю о наследовании класса, а не методов и свойств, определенных в прототипе. Или у тебя конструктор всегда пуст?
Сообщение от Nekromancer
запуская старый конструктор в новом
Расскажи, как делать наследование свойств родительского конструктора.
Ответить с цитированием
  #24 (permalink)  
Старый 27.12.2011, 16:12
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

FINoM,
В JavaScript нет классов. Нет, конструктор не всегда пуст. Это не отменяет пред идущего.

Наследие конструкторов:
var a = function(){},
b = function(){
a.apply(this, arguments);
//b construct here
}

Функция наследования в самом общем виде:
function inherits(parent, handler){
var constructor = function(){
parent.apply(this, arguments);
handler.apply(this, arguments);
}

constructor.prototype = Object.create(parent.prototype);
constructor.prototype.__parent__ = parent;
return constructor;
};
var a = function(){
//construct a here
},
b = inherits(a, function(){
//construct b here
});
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #25 (permalink)  
Старый 27.12.2011, 16:32
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Nekromancer, вариант, да. Но всё равно костыль.
Ответить с цитированием
  #26 (permalink)  
Старый 27.12.2011, 17:14
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от FINoM Посмотреть сообщение
Nekromancer, вариант, да. Но всё равно костыль.
1) в чем проявляется костыль?
2) в чем преимущество классов по сравнению с прототипами что нужно использовать костыли?
Ответить с цитированием
  #27 (permalink)  
Старый 27.12.2011, 17:18
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Livaanderiamarum
1) в чем проявляется костыль?
В том, что нужно создавать функцию для наследования.
Сообщение от Livaanderiamarum
2) в чем преимущество классов по сравнению с прототипами что нужно использовать костыли?
Первая половина фразы понятна, я выше уже писал.
Ответить с цитированием
  #28 (permalink)  
Старый 27.12.2011, 17:32
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от FINoM
Первая половина фразы понятна, я выше уже писал.
1) зачем сопоставлять прототипы с классами?
2) в чем преимущества классов над прототипами?
Ответить с цитированием
  #29 (permalink)  
Старый 27.12.2011, 18:04
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
В JavaScript нет классов. Нет, конструктор не всегда пуст.
Кстати, конструктор чего? Обычно конструктор — это конструктор класса.
Сообщение от Livaanderiamarum
в чем преимущества классов над прототипами?
В том что классы — это классы: простые, понятные, без нужды строить велосипеды. Это устоявшийся элемент ООП, такой же как и процедура в процедурном программировании. Nekromancer предложил решение, о котором я не знал, при том, что программирую на JS уже около двух лет. При наличии классов, не понадобилось бы строить такие костыли.
Ответить с цитированием
  #30 (permalink)  
Старый 27.12.2011, 18:06
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

FINoM, зачем сопоставлять прототипы с классами если при этом вы испытываете трудности?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импортирование списка классов aristov Dojo toolkit 3 20.11.2011 18:30
Как лучше оформлять HTML? Илья Кантор Сайт Javascript.ru 9 20.06.2011 12:14
ajax в каком виде лучше отослать данные Nightmare jQuery 0 13.04.2011 22:12
Что лучше self.open или window.open ? и почему? alb Events/DOM/Window 3 28.07.2010 20:53
Что лучше, display или visibility? FirstFrost Общие вопросы Javascript 1 21.07.2010 05:42