|
2 / 2 / 1
Регистрация: 16.12.2013
Сообщений: 73
|
||||||
Вызов в анонимной функции29.05.2017, 09:03. Показов 1274. Ответов 9
Метки нет (Все метки)
Подскажите пожалуйста почему _render вызывается внутри анонимной функции в setInterval?
и теперь ещё вопрос появился, функции записанный в прототип считают this прототип, или будущий объект, в данном случаи clock. Добавлено через 9 минут Как я понял если метод не найден в своем контексте, он ищется в прототипе, и из прототипа вызывается в конексте объекта, но как тогда функция start находит _render? Добавлено через 8 минут а не, последние два вопроса отпадают, но первый никак понять не могу. Добавлено через 10 часов 31 минуту Потому что в вызове без анонимной функции вызов бы уже запланировался, а контекст ещё не был бы определен?
0
|
||||||
| 29.05.2017, 09:03 | |
|
Ответы с готовыми решениями:
9
Запуск анонимной функции Область видимости в анонимной функции Присвоение анонимной функции двум переменным |
|
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
|
||||||||||||
| 29.05.2017, 09:18 | ||||||||||||
|
Функция setInterval() принимает в качестве первого параметра функцию. Соответственно у вас 2 варианта написания:
0
|
||||||||||||
|
the hardway first
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
|
||||||||||||
| 29.05.2017, 09:22 | ||||||||||||
_render() будет выполнятся в контексте Window, следовательно там не будут доступны методы и свойства объекта Clock. Вы можете сами проверить:
this будет экземпляр Clock, а вот все дальнейшие будет Window.
3
|
||||||||||||
|
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
|
|
| 29.05.2017, 09:25 | |
|
Да. Разница действительно есть. Моя невнимательность...
0
|
|
|
2 / 2 / 1
Регистрация: 16.12.2013
Сообщений: 73
|
|
| 29.05.2017, 09:35 [ТС] | |
|
Так в self же записывается ссылка на контекст? и при создании нового объекта this получит ссылку на объект?
0
|
|
|
the hardway first
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
|
||||||||||||
| 29.05.2017, 10:06 | ||||||||||||
Вот подумайте пока над примером попроще ![]()
0
|
||||||||||||
|
2 / 2 / 1
Регистрация: 16.12.2013
Сообщений: 73
|
|
| 29.05.2017, 14:13 [ТС] | |
|
Ну до ES6 и let я пока не дошел, но в остальном, если я правильно усвоил предыдущие главы:
1) если self заменить на this, то контекст потеряется, так как его "перекроет" setInterval 2) petia.say() выведет Petia, так как из объекта скопировался только метод, а не контекст. Добавлено через 6 минут Я наверно не понимаю в какой момент прототипным функциям присваивается this. То есть когда мы создаем объект, в this объекта хранятся только напрямую заданные свойства, типа _template, а прототипы получают в this ссылку на window, и когда мы вызываем без анонимной функции то в self._render у нас уже лежит window, и не меняется, а когда через анонимную то туда записывается текущий контекст?
0
|
|
|
the hardway first
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
|
||
| 29.05.2017, 19:16 | ||
|
Помните, что JS - интерпретируемый язык. this всегда будет зависить от контекста выполнения. Простыми словами this - это объект, на котором вызвали метод (тот, который идет перед . в вызове).
0
|
||
|
2 / 2 / 1
Регистрация: 16.12.2013
Сообщений: 73
|
|
| 29.05.2017, 20:17 [ТС] | |
|
Ну так я так и думал с самого начала, но вот этот вызов меня запутал совсем. я не могу понять почему в self записывается window, если мы вызываем start в контексте нового объекта. ведь поиск будет таким obj -> Clock.prototype, и все методы из прототипа будут вызываться в контексте obj, или я всё таки неправильно рассуждаю.
Добавлено через 17 минут какую тему нужно перечитать чтоб понять это?
0
|
|
|
the hardway first
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
|
|
| 30.05.2017, 09:24 | |
|
execto, конкретно этот случай: http://learn.javascript.ru/bin... 1%82%D0%B0
И так, для общего развития: http://learn.javascript.ru/object-methods http://learn.javascript.ru/call-apply http://learn.javascript.ru/event-delegation http://learn.javascript.ru/functional-inheritance
1
|
|
| 30.05.2017, 09:24 | |
|
Помогаю со студенческими работами здесь
10
Вернуть значение локальной переменной анонимной функции Два и совершенно разных определения анонимной функции
Вернуть значение с анонимной функции Вызов функции из другой функции после нажатия на кнопку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|