![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Alx |
|
|||
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
ну конечно, если создать объект числа, то число будет объектом...
|
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Destruction, и что пример должен показать? Обернул ты строку в Number обьект, во второй строке опросил конструктор у конструктора, т.е. у функции (Function обьект). В JS есть оьекты и примитивы, строки, числа, это всё примитивы. Xотя new String, new Number и т.д. это обьекты. Особенно сбивает с толку такой приём
![]()
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Innuendo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 24.12.2005 Где: Молдова Репутация: 2 Всего: 6 |
Sardar,
а вот получается что условия типа if (a) проверяют на наличие переменной, а не на то что, она равна false, true или 0,1 ? -------------------- =) |
|||
|
||||
Alx |
|
||||
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
Innuendo,
нет, тут всё сложнее. на наличие не перемнных, а объектов. кода
работат "правильно". а также
Это сообщение отредактировал(а) Alx - 12.2.2006, 22:24 |
||||
|
|||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Наличие переменной не при чём. Всё работает по строгой логике для if (см. Ecma-262, 12.5), выражение в скобках вычисляется и приводится к типу Boolean (см. Ecma-262, 9.2). Соответственно, приведение к этому типу объекта new Boolean(false) даст true. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Существование обьекта это true, null это false, не важно состояние обьекта (в примере содержи false). -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
@ Sardar & Alx:
в том и проблема, что даже самые обычные числа являются объектами (класса Number). Скажем, они имеют уйму методов (вроде toString). Все это есть в документации. Попробуйте у себя в браузере выполнить
например... --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
Destruction |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.2.2006 Репутация: нет Всего: нет |
Примерно это я хотел показать указывая наличие контруктора, но использовал неудачный пример.
Это сообщение отредактировал(а) Destruction - 13.2.2006, 11:48 |
|||
|
||||
Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
regis & Destruction, Нет, это называеться autoboxing, проиходит динамически когда ты обращаешся с примитивом как с обьектом, но значение всё равно не оборачиваеться в обьект.
Обьекты почти всегда в скриптах выполнены на как хештаблицы, реже деревья. Т.е. обьект это набор пар ключь=>значение + сылка на прототип (опять же обьект). Держать хештаблицу для каждого значения весьма накладно (интересно как порешали в Ruby, где действительно всё это обьекты?), потому и существуют примитивы, что "имеют" ссылку только на прототип Number. Числа обычно храняться прямо в структуре "универсального значения", обычно в union. Фактически никаких ссылок нет, все числа при обращении с ними как с обьектами обращаються к прототипу Number. Когда мы пишем:
Происходит следующее, по шагам:
![]() Надеюсь обьяснил, кончаем офтоп, по вопроссам внутренней работы JS создаём новую тему ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
Destruction |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.2.2006 Репутация: нет Всего: нет |
бл... пойду умные книжки читать.. - половину ваще не понял.
Это сообщение отредактировал(а) Destruction - 13.2.2006, 15:21 |
|||
|
||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Перевёл разговор про примитивы сюда - http://forum.vingrad.ru/index.php?showtopic=83710 |
|||
|
||||
Lixil |
|
|||
Unregistered |
Вот недостатки, которые сразу пришли в голову:
1. Нет статических переменных. 2. Нет ООП (фичи с prototype, this и т.д. не считаются) 3. Нет инклуда других скриптов. 4. Нет аргументов по умолчанию у функций (пляски с .arguments не веселят) Это так, недостатки самого языка. Недостатки всей платформы (если можно так выразиться) упираются в кроссбраузерность. ИМХО ^ |
|||
|
||||
Alx |
|
|||
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
что ты подразумеваешь под статичными переменными и ООП?
JavaScript даже слишком ОО... инклуд есть, чуть-чуть изворотливый, но в общем совсем не сложный а вот 4 дейчаствительно большой недостаток, кстати, как пример, именно вот такие недостатки я и хотел собрать, то есть не пространные, а конкретные и обидные. |
|||
|
||||
Sardar |
|
||||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Как представлю такой синтаксис в JS
Ещё бы вызов с именованными аргументами:
Да... красиво было бы ![]() Добавлено @ 01:45 А вообще долго тащился ![]()
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||||
|
|||||||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Кто пользовал XMLHttpRequest знает что его onreadystatechange исполняеться в отдельном треде. JS не многопоточная среда, все setTimeout, события и прочее исполняеться друг за дргугом, модальное окно alert останавливает исполнение. Раз нет многопоточности, значит нет проблем с синхронизацией, концепция проста и удобна.
В результате "второго треда" от XMLHttpRequest гармония нарушаеться, т.к. средств синхронизации нет приходиться надеяться что "основной тред" и тот что от XMLHttpRequest не возьмуться работать с одной нодой. Хотя шанс на это мал, но всё таки не приятна такая не ясность. Настоящая трабла возникает в поведении JS обьектов, судя по всему они копируються в новый тред. Попробуйте создать обьект (назововём А), очертить closure которой будет "виден" обьект, отдать полученный closure на onreadystatechange обьекта XMLHttpRequest. В closure измените какое нибудь свойство обьекта А, сразу же убедитесь что свойство изменилось. Напишите кнопку что будет опрашивать изменяемое свойство А. Запускаем, видим что поле обьекта А изменяеться, затем жмём кнопку, удивляемся почему поле того же обьекта А не изменилось. Обьяснение фокусу пока одно - JS обьект передаваемый в "новый тред" копируеться, обработчик события работает с копией в "новом треде", из него видим что поле изменяеться. События кнопки работают в "основном треде", замечаем что "оригинальная копия" обьекта не изменяеться. Вечером отправлю полезный код, где сей эффект проявляеться. Хорошо если я не прав и кто нибудь найдёт ошибку, а то не приятна эта магия... -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |