-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lesson4 #4
base: master
Are you sure you want to change the base?
Lesson4 #4
Conversation
Отвечу здесь, много вопросов.
|
В цикле for in мы получаем не только ключи, которые сами записали в объект, но и служебные вроде proto поэтому у вас вылезает NaN при суммировании. Чтобы защититься от этого, нужно пользоваться функцией объекта HasOwnProperty(key), которая возвращает true для нужных ключей. |
В том что вы пытаетесь сделать в ladder this как таковой не причем. Если вы ничего не вернете из функции, то этим ничего никак и не сможете воспользоваться дальше, например вызвать следующую функцию. Так как у вас часто делается для того, чтобы функции можно было записывать в цепочку, каждая функция возвращает тот же или видоизмененный объект. |
Вопрос в calcConstruct не понял. Где вы пытались применить this read() и почему без точки? this.read() будет иметь смысл только там, где есть соответствующий this, а именно в функциях вызываемых у объекта. В общем про this почитайте лучше книгу, слишком много можно написать по одной этой теме :-). |
Здравствуйте!
В ходе изучения объектов возник вопрос по функционалу инструментов разработчика - возможно ли там посмотреть все ссылки на имеющийся объект (т.е. все, что делает объект "достижимым" в памяти), чтобы не допустить удаление объекта из памяти "сборщиком мусора"?
Так же насущные вопросы по изучению темы объектов записал в комментариях в самом конце файлов key.js, ladder.js, calcConstruct.js (каждый файл содержит пример и вопрос, все три файла подключены к индексу, но закомментированы изначально). Вопросы из key.js, ladder.js и calcConstruct.js возникли при решении различных практических задач по работе с объектами и связаны с рядом тонких, но важных моментов по использованию this и [ключ].
Кроме того, возник вопрос - как вывести объект целиком через alert, например? Попытки вывести объект целиком через alert в текущем виде выдают [object Object].
И еще вопрос - когда лучше обращаться к ключам объекта через . , а когда через []?
При работе над ДЗ, так же, возник вопрос - можем ли мы подсчитать общее количество того или иного ключа в объекте? Или, может быть, существуют иные способы, как мы можем подсчитать общее количество товаров в каталоге, например, если каталог реализован как множество объектов в одном большом объекте?
В заданиях 1 и 2 оставил в строчках комментарии почти ко всем действиям, интересно, можно ли было какие-либо действия сократить за отсутствием в них необходимости.
Что касается задания 3:
Выходит, мы можем реализовать каталог как:
С точки зрения практичности, для каталога наиболее удобным выглядит, если продукты в нем будут представлены объектами. Вместе с тем, выбор обертки (массив или объект) зависит от того, насколько крупным ожидается наш каталог (поскольку, как мы уже выяснили, массив в качестве обертки через свои методы хорошо расширяет функционал, но, вместе с тем, эти методы будут менее быстродействены). Так же влияние будет оказывать, как мы планируем впоследствии работать с каталогом - необходимо ли нам лишь только по запросу получать доступ к конкретному товару в каталоге, либо же мы планируем регулярно проводить различные массовые операции с группами товаров в каталоге, перемещая их в различные иные структуры.
Правильно ли я мыслю в этом отношении? Какие могут быть еще нюансы? И, возможно, я упустил какой-либо способ реализации каталога?
Здравствуйте!
Задания для ДЗ изначально смотрел в методичке, и только потом посмотрел, что на сайте задания изменены. Поэтому задания, которые на сайте помечены под номерами 2 и 3, у меня будут как 4 и 5.
В ходе изучения объектов возник вопрос по функционалу инструментов разработчика - возможно ли там посмотреть все ссылки на имеющийся объект (т.е. все, что делает объект "достижимым" в памяти), чтобы не допустить удаление объекта из памяти "сборщиком мусора"?
Так же насущные вопросы по изучению темы объектов записал в комментариях в самом конце файлов key.js, ladder.js, calcConstruct.js (каждый файл содержит пример и вопрос, все три файла подключены к индексу, но закомментированы изначально). Вопросы из key.js, ladder.js и calcConstruct.js возникли при решении различных практических задач по работе с объектами и связаны с рядом тонких, но важных моментов по использованию this и [ключ].
Кроме того, возник вопрос - как вывести объект целиком через alert, например? Попытки вывести объект целиком через alert в текущем виде выдают [object Object].
И еще вопрос - когда лучше обращаться к ключам объекта через . , а когда через []?
При работе над ДЗ, так же, возник вопрос - можем ли мы подсчитать общее количество того или иного ключа в объекте? Или, может быть, существуют иные способы, как мы можем подсчитать общее количество товаров в каталоге, например, если каталог реализован как множество объектов в одном большом объекте?
В заданиях 1 и 2 оставил в строчках комментарии почти ко всем действиям, интересно, можно ли было какие-либо действия сократить за отсутствием в них необходимости.
Что касается задания 3:
Выходит, мы можем реализовать каталог как:
С точки зрения практичности, для каталога наиболее удобным выглядит, если продукты в нем будут представлены объектами. Вместе с тем, выбор обертки (массив или объект) зависит от того, насколько крупным ожидается наш каталог (поскольку, как мы уже выяснили, массив в качестве обертки через свои методы хорошо расширяет функционал, но, вместе с тем, эти методы будут менее быстродействены). Так же влияние будет оказывать, как мы планируем впоследствии работать с каталогом - необходимо ли нам лишь только по запросу получать доступ к конкретному товару в каталоге, либо же мы планируем регулярно проводить различные массовые операции с группами товаров в каталоге, перемещая их в различные иные структуры.
Правильно ли я мыслю в этом отношении? Какие могут быть еще нюансы? И, возможно, я упустил какой-либо способ реализации каталога?
А что касается объекта самого продукта, то вижу здесь в качестве самых важных ключей такие, как id, имя и текущая цена. Этих трех, по идее, должно быть достаточно для любых операций, а все остальные будут уже факультативны. Так, дополнительно можно добавлять различные ключи вроде sales:true, например, и учитывать это в формуле подсчета стоимости корзины, и так далее - но это уже все вполне доступно для любых настроек.
Задание 4 выполнено в labirint.js, в самом конце файла оставил комментарий с тем, как реализовал необходимую функцию. Все работает исправно (по крайней мере, я ошибок не обнаружил).
Задание 5 выполнено в billions.js, не знаю, насколько я правильно понял, какой вид должна была игра приобрести, но в реализованном виде все работает, комментарии по алгоритму оставил в коде