Loading...
EBojilova avatar EBojilova 330 Точки

[Exam] Advanced JS - 21 Февруари 2016 - решения, впечатления, резултати

Както винаги аз съм най-нетърпелива и поствам първа впечатленията си от изпита.

Този път за разлика от последните ми 3-4 явявания на изпит, съм доволна. По принцип си го обичам ООП.

Условието беше написано подробно и ясно, като за такива разсеяни, като мен :) Видя ми се и по-лесен от предишния изпит от 27.Март.2015.

Това ми е решението- включително написах и допълнителната задача за бонус точките.

https://github.com/EBojilova/JavaScriptAdvanced/tree/master/Demos-Homeworks-Exams/Exams/Exam210216/SolutionEB

Напавих copy-paste на един изпит решен от Наков-Estates. Валидациите ги  копирах също от там, но с малки поправки и добавки, да ми вършат работа за конкретния изпит. Валидациите съм ги сложила в extensions.js, дано не съм сбъркала. Ето от къде преписвах:

https://github.com/EBojilova/JavaScriptAdvanced/blob/master/Demos-Homeworks-Exams/Exams/Estates/Estates-Solution-In-Class/Estates.js

Най-често натисках клавишите Ctrl+R :)

Това, което единствено не направих, е проверката за абстрактния клас. Хвърляше ми грешка и просто я закоментирах. Нея трябва да я оправя, но накрая вече виждах замрежено и реших, да си ходя :) 

Решението е във вида в който съм го предала на изпита. Всякакви мнения са добре дошли.

9
JavaScript Advanced 21/02/2016 21:20:15
anto84 avatar anto84 16 Точки

Здравейте, да задам и аз един въпрос относно гетърите и сетърите не класовете. Когато например имам hall 

имам

 function Hall(name, capacity) { 

...

this._name = name;

...

}

Това по приницип си работи но грешно ли е и защо? За да ми работи обаче задачата видях, че app.js търси hall.name.getName() и направих  допълнително в консруктора

this.getName = function getName() {

return this._name;

};

 

вижте тук https://github.com/tonitonev/AdvancedJS/blob/master/js/models/hall.js

 Виждам, че другите колеги винаги използват  this.setName(name); и после

Hall.prototype.getName = function() {

return this._name;

};

Какво му е грешното да се използва  this._name = name; ? Това явно още не съм го схванал от целия курс. Цялото ми решение както съм го предал на изипита е тук: https://github.com/tonitonev/AdvancedJS

 

0
23/02/2016 08:58:08
LoKSET avatar LoKSET 160 Точки

Ами грешното е че по този начин нямаш сетър с валидации, докато в условието изрично пише, че е нужен такъв. При твоят вариант сетваш каквото ти подадат без никаква проверка (едит: всъщност виждам, че има проверки по-горе - така имаш някакви валидации, но пък нямаш възможност по никакъв начин да модифицираш вече вкарани данни), което не е ОК. Освен това и гетъра и сетъра трябваше да се закачат към прототипа на "класа", докато ти си сложил всичко в конструктора, което излишно дуплицира всички гетъри.

1
23/02/2016 10:09:19
EBojilova avatar EBojilova 330 Точки

Ако разбрах правилно въпроса : )

Проблема е, че не минаваш през валидация в сетъра, а в конструктора. 

Другия проблем, който имаш е, че при всяка инстанция на круса ще създаваш нова функция за гетъра, докато ако е закачена към прототипа, тя ще се преизползва- имаше едно демо към стари инстанции на курса, точно по този въпрос- погледни линка отдолу:

this.getName = function getName() {

return this._name;};

И гетъра и сетъра е хубаво да са закачени към прототипа, за да се преизползват от следващите инстанции.

https://github.com/EBojilova/JavaScriptAdvanced/blob/master/Demos-Homeworks-Exams/3.%20How-to-Simulate-OOP-in-JavaScript/04.%20different-method-instances.js

1
moholovka avatar moholovka 169 Точки

Аз продължавам да съм на изпита :) Направих го с прототипно наследяване, но съм махнал валидациите, защото гърмят и трябва да се направят по друг начин, обаче ме мързи да го търся. Освен това гръмна и jquery и ако сме заредили едната зала не може да зареди другата заради грешка, която отново не ми се търси от къде идва :) 

https://github.com/IvanMladenov/AdvancedJS/tree/master/JSExamPreparation/ExamPrototypalWithRequire

2
dimityr.jechev avatar dimityr.jechev 198 Точки

А някой да знае кога да очакваме резултатите ?

2
Bi0GaMe avatar Bi0GaMe Trainer 389 Точки

Резултатите ще излязат тази седмица :)

6
d.roshlev avatar d.roshlev 20 Точки

Оценките пуснати ли са в системата, понеже на мен нищо не ми изкарва още?

1
exploitx avatar exploitx 71 Точки

Спокойно нема ;D

6
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.