|
Модераторы: Sardar, Aliance |
|
PsiMagistr |
|
|||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Почему? Это сообщение отредактировал(а) PsiMagistr - 23.3.2018, 13:10 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
alert - очень странная функция, со своими многочисленными тараканами и фенечками. В IE оно блокирует выполнение скрипта до закрытия окна, в Хроме - не блокирует, но тоже ведет себя не всегда ожидаемо. Лучше пользоваться для трассировки console.log
console.log('Литеральная форма ', this.property) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
PsiMagistr |
|
||||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Кстати в декларативном классе все нормально. Всегда выводит object Спасибо Вам. console.log() не повлиял никак. Если использовать декларируемый класс то все хорошо, в любом случае.
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
||||
|
|||||
PsiMagistr |
|
|||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Не сохраняет свойство свою ссылку на this Даже если просто так сделать:
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
PsiMagistr |
|
|||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Самый простой пример. Это сообщение отредактировал(а) PsiMagistr - 23.3.2018, 14:14 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
вообще-то this порождается конструкцией new. Не было new - нет и соответсвующей объекту области памяти, на который может указывать this. Так что все так и есть. Ну и так как в JS свято место редко бывает пусто - this в таком случае указывает на системный объект, как привило, - window
Добавлено через 4 минуты и 49 секунд В случае
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
PsiMagistr |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Спасибо. Не знал. А где можно именно про этот нюанс прочитать? Получается, что в литералах и нет никакого this? хотя например
Это сообщение отредактировал(а) PsiMagistr - 23.3.2018, 14:57 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
||||||
|
|||||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
В случае конструирования объекта с помощью фигурных скобок new таки есть, но он появится только после полной сборки всего объекта. По этому использовать this явно при определении свойств в этом месте нельзя, this в этом месте еще не тот. А вот при вызове метода объекта он уже вполне себе this... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
PsiMagistr |
|
|||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
То есть свойствам литорального объекта нельзя присвоить значение его this? Я верно понял? -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
вот так - this будет не тот, так как выделение памяти и инициализация переменной this произойдет после закрывающей фигурной скобки А в остальном "литеральный" объект ничем не отличается от объекта, который делается через конструктор -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
PsiMagistr |
|
||||
Опытный Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: нет Всего: 1 |
Спасибо большое. А где можно по это подробно прочитать. Раньше я думал, что литеральный ничем не отличается -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
||||
|
|||||
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |