$(document).ready( function () { var state = {flag: false}; $('.boundary').mousedown(function () { state.flag = true; console.log(state); }); $('.boundary').mouseup(function () { state.flag = false; console.log(state); }); } )
Как я представляю себе работу этого кода:
1. когда загрузился DOM, выполняется этот код, и мы имеем переменную-объект с полем flag = false, в этот момент назначаются, но не выполняются обработчики;
2. когда мы кликаеем на элемент, сначала запускается обработчик mousedown, который записывает в поле flag значение true, и выводит объект state в консоль (в этот момент flag=true);
3. затем происходит событие mouseup, и в поле flag записывается значение false, затем в консоль выводится объект state с полем flag = false.
В чем мои рассуждения неверны? Почему в обоих случаях в консоли flag = false? Причем если глобально использовать не объект, а просто переменную-примитив, то все работает так, как я предполагаю.
Что я упускаю из виду, какую тему мне надо перечитать еще 20 раз?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
rash
Минимальный код для иллюстрации вопроса:
Как я представляю себе работу этого кода:
1. когда загрузился DOM, выполняется этот код, и мы имеем переменную-объект с полем flag = false, в этот момент назначаются, но не выполняются обработчики;
2. когда мы кликаеем на элемент, сначала запускается обработчик mousedown, который записывает в поле flag значение true, и выводит объект state в консоль (в этот момент flag=true);
3. затем происходит событие mouseup, и в поле flag записывается значение false, затем в консоль выводится объект state с полем flag = false.
В чем мои рассуждения неверны? Почему в обоих случаях в консоли flag = false? Причем если глобально использовать не объект, а просто переменную-примитив, то все работает так, как я предполагаю.
Что я упускаю из виду, какую тему мне надо перечитать еще 20 раз?
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.