Cred că mulți dintre voi vor să-și folosească munca în proiectele lor, dar adesea fie nu există suficient timp, nici abilități pentru a face acest lucru. Așa că astăzi voi merge sarcina de a crea un temporizator cu numărătoare inversă în două versiuni: timer-ul înainte de o anumită dată, și un temporizator pentru un anumit număr de ore, minute și secunde. Unii probabil a dat seama că, de fapt, cele mai multe dintre lucrările vor lua pentru a rezolva prima problemă, ca a doua problema poate duce cu ușurință la primul (Vreau să rețineți că capacitatea de a reduce în mod inteligent sarcinile lor la stabilit deja facilitează foarte mult procesul de dezvoltare). Și așa vom proceda ...
Mai întâi, să definim modul în care vom implementa temporizatorul nostru: funcții, obiect sau simulare de clasă. Eu arunc imediat funcțiile, nu este foarte convenabil, dar obiectul și "clasa" nu sună rău. Cu toate acestea, există un alt punct important: dorim să folosim mai multe cronometre pe o singură pagină? Dacă da, atunci punerea în aplicare a obiectului complica ușor sarcina noastră, pentru că obiectul este, de fapt - o clasă statică, și trebuie să ne dăm seama de lucru cu o serie de cronometre. Clasele, de asemenea, nu se vor suprapune și pot crea un număr nelimitat de cronometre, astfel încât discuta despre această opțiune. În același timp, determinăm că timerul ar trebui creat în elementul specificat, fără a crea manual marcare suplimentară. Și așa a mers ...
Creați o piesă de prelucrat pentru a crea o "clasă" a lui js:
Dacă vă uitați atent, evident că nu avem suficiente setări. Extinde constructorul nostru cu al doilea argument responsabil pentru setarea cronometrului nostru. Setările vor fi implementate ca un obiect, pe care îl vom compara cu setările implicite. Ie de exemplu, avem de configurare «o», «b“, «c» constructorului, vom trece «doar» și «o» => în setările noastre timer «o» și «c» va fi egală cu, și «b» vor fi luate în mod implicit. Această abordare este folosită în majoritatea scenariilor, deoarece este foarte convenabilă. De asemenea, va trebui să implementăm un astfel de mecanism de comparare a setărilor, deoarece JS nu o are în personalul său. De asemenea, în același timp, vom scrie codul de marcare a timerului nostru viitor.
Dacă totul este adevărat, atunci ar trebui să aveți 1000 de pagini. Este un pic neclar pentru ce este vorba, deci să adăugăm un stil care ar împărtăși cel puțin cumva cifrele noastre.
De asemenea, trebuie să adăugăm două linii la sfârșitul constructorului nostru, astfel încât cronometrul să înceapă să se numere imediat după creare
Acum, dacă te uiți la țara noastră, atunci cronometrul ar trebui să funcționeze. Rămâne să rezolvăm a doua noastră sarcină. Abordarea la rezolvarea acestei: în cazul în care cronometrul Setați setarea cronometrului la numărul de ore, minute și secunde, apoi se calculează data care va fi la un anumit interval de timp, setați-o ca data la sfârșitul contorul de timp și porni cronometrul pentru un algoritm de sarcină. Voi adăuga această mecanică constructorului. Și aduceți imediat tot codul final al cronometrului nostru.
Și un mic exemplu demonstrativ: