Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.04.2010, 11:07
Интересующийся
Отправить личное сообщение для Kfuse Посмотреть профиль Найти все сообщения от Kfuse
 
Регистрация: 08.11.2009
Сообщений: 28

почему примитивные типы не объекты?
В общем вопрос в названии темы. Урыл энное количество времени из-за бага в строке
this._appendToRow(row, typeof this.ocot[i] == "undefned" ? "\u00a0" : this.nts(this.ocot[i]));
ну и в голову полезли мысли на тему...
Вопрос не в том, что нужно было сразу писать x == undefined, а в том, что typeof вообще существует, что очепятка приводит к багу (а вроде бы сейчас хотят добавить возможность создавать пользовательские типы, что вообще будет тогда), что Number - это враппер а не суперкласс, со всей присущей ему путаницей. Почему именно так, а не попроще, я что-то упускаю?
Ответить с цитированием
  #2 (permalink)  
Старый 29.04.2010, 11:34
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от Kfuse Посмотреть сообщение
что очепятка приводит к багу
Ппц, а Вы что, хотели интеллектуальный супер-пупер-парсер, у которого в конфиге прописано telepate_mode=on, и он сам разруливает говнокод?

Сообщение от Kfuse Посмотреть сообщение
Number - это враппер а не суперкласс, со всей присущей ему путаницей.
А где путаница? Разве что в голове...
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2010, 12:01
Интересующийся
Отправить личное сообщение для Kfuse Посмотреть профиль Найти все сообщения от Kfuse
 
Регистрация: 08.11.2009
Сообщений: 28

Цитата:
Ппц, а Вы что, хотели интеллектуальный супер-пупер-парсер
А что такого интеллектуального если было бы 43 instanceof Number или idontexist instanceof undefined?

Цитата:
А где путаница?
В дублировании. Чем отличаются new Number(42) и 42? Только тем что одно отзывается на typeof другому нужен instanceof. Зачем такие братья-близнецы? И само наличие двух функций для проверки типа, плюс необходимость использования строк вместо имён тоже не гут.

Цитата:
Разве что в голове...
Ну это да, куда ж без подобных ремарок.
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2010, 12:10
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от Kfuse Посмотреть сообщение
А что такого интеллектуального если было бы 43 instanceof Number или idontexist instanceof undefined?
Потому что idontexist не существует, и Вы получите ReferenceError. 43 - примитивный тип. Хотите получить одинаковое поведение и для объекто Number, и для примитивов --
typeof 43 //number
typeof (new Number(43)).valueOf() //number


Сообщение от Kfuse Посмотреть сообщение
Ну это да, куда ж без подобных ремарок.
Естественно. Вся путаница обычно там. Вы пришли из другого языка, и Вам хочется, чтобы все было так, как Вам хочется. JS - такой JS, он не похож на C(++) или на Delphi.
Ответить с цитированием
  #5 (permalink)  
Старый 29.04.2010, 12:29
Интересующийся
Отправить личное сообщение для Kfuse Посмотреть профиль Найти все сообщения от Kfuse
 
Регистрация: 08.11.2009
Сообщений: 28

Цитата:
Вы пришли из другого языка
Я не из какого языка не приходил, и javascript пользую for fun ну и так по мелочи.

Цитата:
Хотите получить одинаковое поведение
Нет, я хочу узнать, почему я вообще должен хотеть получить унифицированное поведение, а его нет. Никаких объяснений кроме того, что так было содрано с Джавы мне в голову не приходит. Только опять же вопрос, что будет дальше?
Ответить с цитированием
  #6 (permalink)  
Старый 29.04.2010, 12:36
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Kfuse, читайте спеку?
Цитата:
4.3.2 Элементарное значение

Элементарное значение - значение одного из типов Undefined, Null, Boolean, Number или String. Элементарное значение - единица данных, представляемая напрямую на самом нижнем уровне реализации языка.
4.3.3 Объект

Объект - элемент типа Object. Представляет собой неупорядоченный набор свойств, каждое из которых содержит элементарное значение, объект или функцию. Функция, хранимая в свойстве объекта, называется методом.
Честно говоря, нет никакого желания общаться на эту тему. Так написано в спецификации, так реализовано в движках браузеров. К чему тогда вопросы? for fun?
Ответить с цитированием
  #7 (permalink)  
Старый 29.04.2010, 12:37
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Kfuse
Только опять же вопрос, что будет дальше?
А что будет дальше?
Ответить с цитированием
  #8 (permalink)  
Старый 29.04.2010, 12:54
Интересующийся
Отправить личное сообщение для Kfuse Посмотреть профиль Найти все сообщения от Kfuse
 
Регистрация: 08.11.2009
Сообщений: 28

Цитата:
К чему тогда вопросы?
Ни к чему. Спрашивать вообще вредно.
Цитата:
А что будет дальше?
Дальше будут пользовательские типы которые будут вести себя как примитивные. Тоесть будет больше typeof, или они будут объектами? Тогда почему текущие примитивные типы тоже не сделать объектами?
Хотя ещё раз, мне интересно, почему так вообще было сделано, почему JS такой, почему так написано в спецификации, почему вместо единой системы типов их две? Мне интересно возможное обоснование этой как мне видится ненужной усложнённости.
Ответить с цитированием
  #9 (permalink)  
Старый 29.04.2010, 12:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Kfuse
Дальше будут пользовательские типы которые будут вести себя как примитивные.
Откуда они возьмутся-то? Да даже если возьмутся, это будет очень не скоро.

З.Ы. Надо вас добить.
if (new Boolean(false)) {
    alert('true');
}
Ответить с цитированием
  #10 (permalink)  
Старый 29.04.2010, 13:04
Интересующийся
Отправить личное сообщение для Kfuse Посмотреть профиль Найти все сообщения от Kfuse
 
Регистрация: 08.11.2009
Сообщений: 28

Цитата:
Откуда они возьмутся-то? Да даже если возьмутся, это будет очень не скоро.
В каком-то видео кто-то говорил. Кто-то не из последний личностей в JS мире.
Цитата:
Надо вас добить.
Да-да, "JS - такой JS, он не похож..."
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объекты в массиве. delias Общие вопросы Javascript 2 21.04.2010 22:28