Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.09.2009, 10:44
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

реализация, я ж сказал...
__________________
.ня
Ответить с цитированием
  #12 (permalink)  
Старый 28.09.2009, 11:52
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Сообщение от [DiMA
]Если вы считаете себя настоящим профессионам в плане ООП на JS и потому хотите для себя исключения
Гы-гы, профессиональному js-проггеру в виде исключения 50-60 тр?
Спасибо, поржал...
Ответить с цитированием
  #13 (permalink)  
Старый 28.09.2009, 19:10
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

tenshi, что плохо в реализации? Не подумай, что я пытаюсь спорить, просто интересно твое мнение, так как самому мне сравнивать не с чем, Python только собираюсь осваивать.
Ответить с цитированием
  #14 (permalink)  
Старый 28.09.2009, 22:14
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

реализация как реализация, js - интересный язык и у него как и у всех других языков есть свои особенности.
Ответить с цитированием
  #15 (permalink)  
Старый 29.09.2009, 00:23
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

в яваскрипте слишком много неконтролируемой магии..
* скрытая ссылка на прототип, которую можно получить только окольными путями, а изменить так вообще нельзя
* нельзя изменить итерируемость полей. вообще существование неитерируемых полей - гемор при рефлексии
* для каждого прототипа требуется функция-посредник, которая свяжет экземпляр с прототипом
афайк, функция+прототип - это самый настоящий класс, только в несколько извращённой форме. истинное прототипное наследование достигается только примесями.
* нельзя задать обработчик сообщения "метод не найден" (а в смалтолке и питоне - можно)
__________________
.ня
Ответить с цитированием
  #16 (permalink)  
Старый 29.09.2009, 02:55
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от tenshi
которую можно получить только окольными путями
есть же свойство "constructor", примерно так: exemplar.constructor.prototype .

Сообщение от tenshi
а изменить так вообще нельзя
а надо? Получится, что можно создать класс и изменять его родителя (родительский класс). Разве это по OOP-шному? Там вообще если подумать, много разных неправильных вещей можно будет делать.

Сообщение от tenshi
нельзя задать обработчик сообщения "метод не найден" (а в смалтолке и питоне - можно)
мелочь... Или нет?

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

upd: вот, кстати, еще мнение: http://krovosos.habrahabr.ru/blog/70314/. Правда, там не только прототипирование, скорее просто сравнительный обзор.

Последний раз редактировалось Riim, 29.09.2009 в 02:59.
Ответить с цитированием
  #17 (permalink)  
Старый 29.09.2009, 11:04
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> есть же свойство "constructor", примерно так: exemplar.constructor.prototype

constructor указывает на конструктор прототипа. иногда конструктор экземпляра и его прототипа совпадают, а иногда - нет:

function HTMLString( ){ }
HTMLString.prototype= new String
alert( ( new HTMLString ).constructor.prototype === HTMLString.prototype )



> Разве это по OOP-шному?

да, ибо это объектно ориентированное программирование, а не классово ориентированное ;-)


> мелочь... Или нет?

нет. основа ооп: объекты обмениваются сообщениями и полностью вольны обрабатывать их так, как захотят. а в яваскрипте отсутствие метода вызывает исключение и пытается уронить всё приложение, что для пользовательского интерфейса не допустимо.
__________________
.ня
Ответить с цитированием
  #18 (permalink)  
Старый 29.09.2009, 11:45
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Цитата:
вот, кстати, еще мнение: http://krovosos.habrahabr.ru/blog/70314/
это высер дилетанта
__________________
.ня
Ответить с цитированием
  #19 (permalink)  
Старый 29.09.2009, 14:57
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от tenshi Посмотреть сообщение
это высер дилетанта
Мда, такое ощущение, что человеку надо было просто обосрать некий скриптовый язык, и под руку попался Ruby. JS для него -- мега круто... А Perl он похоже и в глаза не видел, раз такие заявления.
Ответить с цитированием
  #20 (permalink)  
Старый 29.09.2009, 20:15
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от tenshi
иногда конструктор экземпляра и его прототипа совпадают, а иногда - нет
приходится за этим немного вручную следить, на этапе описания класса. Часто создают обертку, которая сама как надо все делает. В общем, ситуация поправима.

Сообщение от tenshi
это высер дилетанта
Сообщение от e1f
Мда, такое ощущение, что человеку надо было просто обосрать некий скриптовый язык, и под руку попался Ruby. JS для него -- мега круто... А Perl он похоже и в глаза не видел, раз такие заявления.
ладно, вам виднее.
Ответить с цитированием
Ответ



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

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