Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2011, 05:27
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Прототипы лучше классов?
Прототипы же лучше классов? Это как классы, только динамические, разве нет?

Последний раз редактировалось Livaanderiamarum, 27.12.2011 в 05:30.
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2011, 05:31
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Livaanderiamarum
Прототипы же лучше классов?
Имхо, да.

Сообщение от Livaanderiamarum
Это как классы, только динамические, разве нет?
Нет.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2011, 05:32
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от trikadin Посмотреть сообщение
Имхо, да.
Нет.
ну а в чем разница? (только не надо мне ссылки давать, как я уже говорил я разбираюсь в этой теме)

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

Сообщение от Livaanderiamarum
Прототипы же лучше классов?
Как по мне, нет, из-за сложного сопоставления с устоявшейся парадигмой классов. Библиотеки для поддержки традиционного ООП считаю костылями.
Пример с прототипами: у меня есть некий класс X, который при инициализации создает HTML элемент для какой-нибудь информации. Я хочу сделать класс Y, который наследуется от X.
X = function(){ // функция? блжад, это же конструктор, причем тут функция?
   this.elem = document.createElement('div');
}
Y = function(){}
Y.prototype = new X;
//что бы вы думали? Теперь this.elem является одним и тем же объектом для всех экземпляров Y
Ответить с цитированием
  #5 (permalink)  
Старый 27.12.2011, 13:26
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от FINoM Посмотреть сообщение
Как по мне, нет, из-за сложного сопоставления с устоявшейся парадигмой классов. Библиотеки для поддержки традиционного ООП считаю костылями.
Пример с прототипами: у меня есть некий класс X, который при инициализации создает HTML элемент для какой-нибудь информации. Я хочу сделать класс Y, который наследуется от X.
X = function(){ // функция? блжад, это же конструктор, причем тут функция?
   this.elem = document.createElement('div');
}
Y = function(){}
Y.prototype = new X;
//что бы вы думали? Теперь this.elem является одним и тем же объектом для всех экземпляров Y
ну с таким подходом вывод такой что ты не умеешь полноценно пользоваться протатипами. да и вообще рассуждаешь на уровне синтаксиса и.т.п.
Мы говорим про теорию если что.
Ответить с цитированием
  #6 (permalink)  
Старый 27.12.2011, 13:32
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

На этот раз соглашусь с автором темы, по поводу его последнего поста.
FINoM,
Вы как раз таки повесить на классическую систему наследования - классами и так же пытаетесь реализовать наследование в JS.
Правильное наследование:
var a = function(){},
b = function(){};
b.prototype = Object.create(a.prototype);

И прототипы да, лучше. И их тем более не нужно ни с чем там сопоставлять.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 27.12.2011, 13:42
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от Nekromancer Посмотреть сообщение
На этот раз соглашусь с автором темы, по поводу его последнего поста.
FINoM,
Вы как раз таки повесить на классическую систему наследования - классами и так же пытаетесь реализовать наследование в JS.
Правильное наследование:
var a = function(){},
b = function(){};
b.prototype = Object.create(a.prototype);

И прототипы да, лучше. И их тем более не нужно ни с чем там сопоставлять.
Привет, да, но в теории, из-за динамичности, они медленнее. типа
Ответить с цитированием
  #8 (permalink)  
Старый 27.12.2011, 13:44
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Livaanderiamarum,
тут скорее в теории медленнее язык программирования, из-за динамичности. типа
Но это только в теории.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #9 (permalink)  
Старый 27.12.2011, 13:49
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Nekromancer, то есть прототипы не медленнее классов если абстрагироваться от языка?
Ответить с цитированием
  #10 (permalink)  
Старый 27.12.2011, 14:11
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Livaanderiamarum,
Ну во первых, даже классы быстрее, то их здесь нет. А есть прототипы, этого не изменишь.
Как на низком уровне реализуются классы представления не имею, но не думаю что будет большое отличие в скорости между двумя динамически типизированными языками одного уровня, где в одном будет прототипное наследование, а в другом привычно классовое.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импортирование списка классов 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