>> Viskas gerai, taip ir šiandien, Aš ruošiuosi kalbėti
apie JavaScript ir kaip tai skiriasi nuo kitų kalbų
kad jums gali būti naudojamas kaip PHP.
Taigi paskutinę paskaitą apie Pirmadienis, mes kalbėjome šiek tiek
apie tai, kas panašu, kas susipažinęs Tarp JavaScript
ir PHP ar Python ar Ruby C arba kitomis kalbomis
kad jūs jau esate susipažinę su.
Bet Javaskriptą, kad iš tikrųjų yra tikrai unikalus imtis
ant objektinio modelio, kuris leidžia ji tarsi visiškai kitoks
nei dauguma kalbų, jūs ketinate spręsti.
Taigi funkcijos yra tarsi
iš neįvertinta sąvoka "JavaScript".
Jie būdas galingesnis nei jie kitomis kalbomis
nes jie gali ir - dėl vienos priežasties,
jie gali būti nustatyti kaip vertybes.
Taigi čia mes turime var X reiškia funkciją
ir tai pirmos klasės vertė, kuri gali būti perduota
aplink kaip argumentas.
Taigi jūs neturite paskelbti funkcija x
ir tiesiog naudokite x toje sritį.
Jūs galite perduoti vertė x bet visoje, žinote,
kaip argumentą į kitos funkcijos
kur galite modulis eksportą David paminėta mazgas.
Taigi kitą taškas
kad funkcija yra paprieštarauti JavaScript.
Taigi, jūs iš tikrųjų galite nustatyti savybės, kaip ir vertybės
apie funkciją ir tik gydyti ji patinka tai objektas.
Taigi, kai dirbate su JQuery, jūs žinote, kad doleris
ir tada pereiti selektorių į jį
ir juo remtis kaip funkcija.
Bet tada taip pat buvo doleris dot AJAX.
Ir tai nėra tarsi prasmės, jei jūs manote
iš funkcijos tiesiog kaip yra ką jūs galite remtis
arba skambinti.
Bet JavaScript leidžia jums nustatyti nekilnojamųjų funkcijų
statiniai savybės tik su x taškas someProp
kaip minėjau ten.
Kitas klausimas, kurį mes ruošiuosi eiti į šiek tiek daugiau
gylio yra tai, kad funkcijos gali būti gydomi
kaip klasių JavaScript.
Taigi yra koncepcija Šio naujojo operatoriaus
kuri sukuria naują grafą kartu su rūšiavimo funkcija
panašaus klasėje kaip kūno , kuri ateina kartu su juo
ir mes ketiname eiti į jį šiek tiek daugiau,
ji vadinama prototipas.
Ir tai, kas daro "JavaScript" yra labai unikali, lyginant
į kitas kalbas kurios klasės pagrindu,
"JavaScript" yra prototipas pagrindu.
Ir tada tiesiog ne dugnas ten,
funkcija gali būti tiesiog vadinamas aiškiai, kaip mes įpratę.
Taigi, kad nieko naujo.
Kitas dalykas, kad yra unikali
kad matricos yra iš tikrųjų objektus.
Jie ne taip, kaip jie yra PHP
kur tik sukurti nauja matrica.
Tai iš tikrųjų yra sutrumpinimas teigti naują masyvą.
Ir masyvas yra iš tikrųjų poklasio objektas.
Taigi, kad kažkas skiriasi ir aš eisiu
į šiek tiek daugiau informacija apie tai, kad.
Ir derinimo galimybės
JavaScript yra tikrai nesuderinta, kiek aš mačiau.
Tai kadrai "Chrome inspektorius
kurį mes ketiname bus naudojamas poilsiui
prezentacijos šiandien.
Ir gauti tai, ką tik eiti į failą Kūrėjo įrankiai
ir atviras "Chrome inspektorius arba galite dešiniuoju pelės mygtuku spustelėkite
ir spustelėkite Rodyti elementą manau, kad tai yra HTML puslapis
arba Manau, kad tai komanda galimybė J atveria tai padaryti.
Bet mes pereiti į šį ir jūs iš tiesų gali nustatyti ribines vertes
kaip jūs dirbate per JavaScript kodas ir rūšiuoti
iš įvertinti, ką vietos kintamieji, ką reikšmė,
tai yra ir ji tampa taip lengviau debug kodą.
Ir NeraŠykiTe - tai ne priverstas naršyklė pusėje kodą
bet jūs iš tikrųjų galite paleisti instancija
Šio Chrome inspektorius Jūsų paslaugų šoninės kodas
kuri yra tikrai tvarkingas, nes jums gali žingsnis po linijos linijos
kaip prašymas ateina į jūsų serverio ir pamatyti, kas vyksta
ir žaisti su kintamųjų konsolėje čia.
Taigi, kaip minėjau, "JavaScript" yra prototipas pagrįsta kalba
tai reiškia, kad yra rinkinys numatytųjų verčių, kurios yra tarsi
iš paslėpta už kiekvieną funkciją
į objekto tašku prototipas nuosavybė.
Taigi, tai tarsi iš maišos tiesiog skirtingos numatytosios vertės
kad, kai jūs remtis veikti su nauja raktažodį
tiems, kurie nustatyti pagal nutylėjimą kaip funkcijos
, kurie yra prieinami ant instancijoje.
Taigi, kad iš tikrųjų yra tikrai efektyvus -
tai efektyvus būdas Objektų kūrimas atminties protingas
nes "JavaScript" Runtime turi sekti tik
iš objekto prototipą.
Tai tarsi nurodo, kad
kai cretae nauja egzempliorius klasės.
Ir jūs taip pat gali imituoti paveldėjimas, kaip yra žinoma,
klasėje pagrįstas kalbomis kur jūs turite rūšiuoti
panašaus tai pailgina, kad išplečia kad galite imituoti
kad JavaScript per tai, kas vadinama
prototipas grandinė.
Ir mes pamatyti pavyzdžių apie tai.
Taigi, jei jūsų - jQuery įskiepių iš tikrųjų jie rekomenduoja JQuery
autoriai naudoja dolerio tašką fn pridėti funkcionalumą
su jQuery biblioteką.
Ir mes iš tikrųjų ketiname peršokti į - Taigi, šiame puslapyje,
mes turime doleris - Aš įtrauktas jQuery.
Ir jei jūs dolerį dot konsolės
kurį minėjau pareikšti jūs ne per komanda pamainos J
arba tik ketina peržiūrėti, Kūrėjas, Kūrėjo įrankiai
ir ketina Sources skirtuką.
[Negirdima Pastaba]
O tikrai. Taigi, kai aš pradėjau įvesti kintamąjį,
jis automatiškai užpildoma mane kas yra ten.
Taigi aš įvedėte dolerio ir aš galiu pamatyti manau Chrome "turi keletą
built-in dolerio, doleris ir doleris x.
Taigi, dabar aš tik noriu doleris ir aš įdėti į tašką.
Ir tada jis man rodo visi skelbimai
, kurie yra prieinami ant JQuery objektas.
Bet jei aš dolerį dot prototipas,
Dabar matau visus metodus kad aš naudojamas, naudojant
kai turiu dolerio, selektorių ir tada aš grandinės išjungti, kad ten,
žinote, pridėti klasės arba pridėti arba Blur ar bet kaip.
Tie visi iš tikrųjų nuo prototipo
kuris po gaubtu JQuery sukuria naują grafą savaime
ir ji tarsi paslepia visus tos informacijos iš jūsų.
Taigi, klausimas, kuris man buvo priėmimo atgal per čia
su šia funkcija, jie faktiškai paslėpti prototipą iš jūsų
ir tik pravardė jai į dolerio dot fn.
Taigi, dauguma žmonių iš tikrųjų nesuvokia
kad prototipas Pagal gaubtu that -
kad galite patekti į ir pridėti papildomą funkcionalumą
kiekvienam JQuery pavyzdžiui jei norite.
Taigi "nauja" operatorius tikrai tarsi sunku
suprasti ne pirmas.
Kai Jūs skambinate funkciją su "nauja",
tai visiškai skirtingi būdas skambinti funkcija
kaip jei jūs tiesiog vadinamas ji aiškiai.
Taigi "nauja" operatorius sukuria tai, kas vadinama nauja instancija
Objekto ar nauja egzempliorių, jūs galite galvoti
objekto kaip klasę.
Ir kai tai atsitiks, vertė, tai gali būti susipažinę
su iš JQuery, jie tarsi tai nustatyti
kokia yra patogi tuo metu.
Jie paprastai nustatyti, kad jis Dabartinė DOM mazgas, kad esate
kaip jūs ketinate per kaip kiekvienas ar kažkas panašaus.
Jie - tai vertė turėtų būti iš instancijoje vertė
kad jūs sukūrėte su "nauja", kuri apima viską
nuo prototipo grandinės ir visi iš būdų, kad jūs norite rasti
kaip prototipo savybes.
Taigi, tai priklauso nuo to, kaip funkcija yra vadinama,
kas tai vertė.
Ir tai tikrai painu jei esate naujas JavaScript.
Tačiau kiekviena funkcija, kuri vadinama turi - turi ne šios vertės.
Taigi, net jei jūs nesukūrėte naujas egzempliorius kažką,
kad tai daroma prielaida, pasauliniu mastu.
Arba galite skambinti funkcija naudojant ryšio metodą
kur kreiptis metodą JavaScript.
Galite funkciją ir nurodyti, kas tai turėtų būti.
Taigi jūs galite padaryti tai dinamiška, kuri yra tikrai galingas
bet taip pat leidžia jums padaryti dalykų, kurie gali būti klaidinantys
ir paini kiti kūrėjai
jei jie nenaudoja to.
Ir jQuery kłóciłbym todėl dar labiau klaidina
darant tai patogu ir jį nustatyti
dabartinės DOM mazgas.
Bet paprasta taisyklė prisiminti kas tai vertė yra
kai jūs ieškote
bent funkciniu skambutis kas liko iš taško.
Taigi, jei turite objektą
ir tai, ką taškas kažkas yra funkcija
kad jūs skambinate tada Pirmoji vertė yra tai, kas vertė
tai yra.
Taigi čia yra kodo pavyzdys
kur aš sukurti naujas objektas pažodinis
kuri yra tik objektas sukurta garbanotieji petnešų
ir aš nustatymo pavadinimą Bob
ir tada aš turiu sayName metodas čia jų -
todėl viduje šis sayName jei aš x dot sayName,
tai vertė lygi X, nes kairėje
iš taško x. Taigi, jei Aš tai vadinu x dot sayName,
jis debilas arba tiesiog Labas Bob.
Ir tada dar vienas pavyzdys
kur aš iš tikrųjų paskirti x taškas sayName, funkcija
kintamojo Y, kurie, kaip minėjau
JavaScript jums galite priskirti funkcijas
kintamuosius jei norite, tai tikrai lankstus, kad taip,
bet dabar, kai aš vadinu Y, jis prarado x kontekstą.
Taigi, tai jau yra pasaulinio masto arba jei esate griežtą režimą,
Manau, tai niekinis arba neapibrėžtas.
Bet - Taigi Y yra ne tai, ką jūs tikisi čia, jei jūs ieškote
kai x ir jūs ketinate skambinti sayName,
tikitės šį vardą Manoma, kad Bobas.
Bet jei jums iškedentas jį išjungti objektas ir pavadino jį
pati, tai dabar pasauliniu mastu.
Ir tai, ką aš paminėti kai pamatysite doleris dot tai,
dažnai neturi galvoti apie kas iš tikrųjų vyksta.
Bet JQuery tarsi turi savo savo domeno konkrečia kalba
dirbant su šia ir tai ne tai, ką įpratę
į JavaScript.
Ir aš atkreipti dėmesį į tai nes tai tikrai svarbu
raštu gerai struktūruota Objektinis kodas
į Javaskriptą, kad tikrai gerai išmanyti ir suvokti
, kaip tai veikia ir kaip objekto modelio kūriniai
ir kaip naujas operatorius veikia.
Priešingu atveju, jūs galų su JQuery spagečiai
kur viskas yra tarsi iš visur
ir tik bendraujant su DOM.
Jei jūs iš tikrųjų galite rašyti JavaScript
laikantis labiau struktūrizuotos mados, ji tampa daug lengviau
dirbti, rūšiuoti iš atskirų susirūpinimą
iš su neatskleista atnaujinti DOM ir susijusios
su realia logika ir kodas.
Taigi, galime pažvelgti į išvaizdą Keli pavyzdžiai apie tai.
Taigi turiu keletą pavyzdžių čia.
Taigi, tai tik paprastas pavyzdys naudoti JavaScript objektą
ir pridedant keletą funkcijų jai ir tada sukurti rūšiuoti
iš kaip miniatiūrinės taikymo.
Taigi, tai labai paprasta iš tikrųjų.
Vienintelis dalykas, kad ji yra iš pradžių ji verčia savo vardą.
Taigi aš sakau, Timas ir tada galite pakeisti savo vardą į Bob.
Ir visa tai taikymas nėra.
Bet ką aš norėčiau atkreipti iš kaip tai daro.
Taigi turiu šį pavadinimas generatorius objektas, kuris turi pradžios būdą
kuri prašo vartotoją savo vardą
tiesiog paskambinę šį askForName
kuri čia, apačioje, Ar eilutę
jei vardas nebuvo suteiktas tada ji prašo dar kartą
paskambinus šiuo askForName.
Ir tada, kai jis gauna vardą, ji ragina šią atnaujinimo vardą.
Taigi, tai tada nustato vartotojo vardas h1 žyma.
Ir jei pavadinimas yra ne nustatyti, tai išmeta klaidą.
[Negirdima Pastaba]
O tikrai. Taigi jame vartotojo vardas h1 žyma
paskambinę setDisplayName kuriame HTML
JS vardas konteinerį ir Aš priešdėlį visi mano HTML
su JS selektoriai tik todėl, tai geras įprotis patekti
į tiesiog padaryti tai nėra taip painu
kai naudojate selektoriai kaip ID s ar klasių
tiek stiliaus ir logikos
jūsų "JavaScript" priekinės programas.
Nes jei turi skirtingas žmonių grupės darbo
dėl kodo bazę ir jūs turėti rankenėlę ten
kad dizaineris nusprendžia pakeisti, nes <input -
neatrodo didelis, todėl jie nori įdėti į naują klasę, ir imtis
iš jūsų ir jūs remtis ant jo JavaScript tikslais,
tada jūsų kodas pertraukos.
Tai gerai, kad priešdėlis ir rūšiavimas
panašaus vardų beveik JavaScript giminingas klases
ir atributų JS prefiksas.
Taigi, tai yra gana paprasta ir jūs galite pamatyti,
visais šiais atvejais aš skambina grįžti tai pabaigoje.
Taigi tai yra gerai įprotis patekti į,
duoti jums jį su galioja sugrįžimo vertę.
Be askForName nesu nes tai prasminga
kad jūs galėtumėte gauti vardą atgal.
Bet kas, kad leidžia jums reikia padaryti, tada
jei grįšite šį naujinimą pavadinimas, tai grąžinant vertę
iš setDisplayName kuris yra grąžinant tai vertę.
Ir tai leidžia jums rūšiuoti Grandinės, kaip jūs įpratę
į JQuery grąžinant Šio kiekvieną kartą, vertė.
Tai reiškia, kad Dabartiniai objektai
taip būtų galima pavadinti šį tašką askForName taškas setDisplayName
ir ji būtų nuolat vertė tai ir leidžia jums
turėti gražią grandinę ten.
Ir tada - todėl Antrasis pavyzdys.
[Pauzė]
Gerai.
Gerai. Taigi eikime į priekį ir atverti konsolės
ir eiti į mano šaltiniai skirtuką.
Mes pop tai iš tikrųjų.
Taigi, "Chrome" kūrėjas įrankiai, kurie jau minėjau,
ten tai gabalas į dešinę ir -
jūs galite pamatyti šioje stotelėje ženklą nors pagal nutylėjimą, tai juoda.
Bet kai jus pele ant jo, jis sako: "Negalima pristabdyti išimtimis.
Spauskite ant pauzę visos išimtys. "
Ir, kai jūs spustelėkite jį dar kartą, jis nusidažo mėlynai.
O dabar bet kuriuo metu, kad ten mesti klaida
jūsų "JavaScript" kodą, jis bus sustoti ties klausimu ir leisti jums
įvertinti, kas vyksta.
Taigi - Ir tai tikrai naudinga sąvoka yra apie atkreipti dėmesį.
Ir tada, jei paspausite vėl pasirodo raudonos
ir tai paprastai ką aš nuolat jį in
Jis tik pertraukų kodą kai yra išimtis
kad nebuvo sugauti.
Taigi iš karto į JQuery aikštelė Pavyzdžiui, jie bando laimikį
siekiant patikrinti, ar naršyklė ar ne turi tam tikrą pajėgumų rūšiuoti
ir toliau iš ten.
Tai tik tada, kai ten klaida
kad nebuvo sugauti pabandyti laimikis.
Taigi, pabandykime ir pateikti pavadinimas, kuris yra tuščia.
Taigi matau, kad kodas šiuo metu yra sustabdytas
tuo updateName metodą ir galiu pelę ant pavadinimų
ir pamatyti, tai tušti tam, kad tuščias.
Yra tai lygu tuščia.
Taigi, jei ne pavadinimas mesti nauji klysti, o dabar galiu atsitraukti
per funkcija stulpelis ir sako: "Gerai,
kur gi tai iš "ir pamatyti, kas iš kliento vertė.
Taigi ji turi askForName metodą,
setDisplayName pradžia ir updateName.
Ir tai tik tikrai naudinga būdu jūs galite pamatyti, kad visi
kintamieji, kurie yra prieinami į šią sritį, taip pat
kaip uždarymo kintamųjų, taip nieko, kad uždaryta
perėmė šią funkciją.
Ir taip matau, kad - kas iš kliento vertė yra
ir ką tai vertė.
Taigi ši "priežastis mes į JQuery yra lygi
dabartinės DOM elemento.
Bet tai tikrai naudinga derinimui kodą
nutraukti dėl klaidų, kaip šis.
Kitas bruožas "Chrome inspektorius
kad bet kuriuo metu galite spauskite ant skirtingų linijų
eilutėje ir jis bus pertrauka tose vietose,
kur jūs turite nustatyti ribines vertes jie vadinami.
Taigi, jei aš spustelėkite, linijos nusidažo mėlynai.
Taigi leiskite man tęsti vykdymas čia Gerai, kad sugedo.
O dabar galime nustatyti pavadinimą Alice ir paspauskite "Siųsti".
Taigi, dabar matau, net kol ji gavo iki taško,
atnaujinti viską, tai dabar sustojo čia taip matau
kad mano šis vardas yra Alice ir tada aš galiu toliau -
leiskite man iš naujo įkelkite puslapį.
Gerai, kad dabar, kad tai pradedant pradžios vėl,
ji sustojo tai linija ir matau
tas pavadinimas dabar nenurodytas.
askForName yra, kuris veikia jį yra, kad taip pat dažnai būna naudinga
jei turite funkcijas, kurios iš skirtingų failų
ar skirtingų vietų kodas, jūs galite pamatyti, kur ji yra,
ir tada pereiti prie to, jis pabrėš jį.
Taigi gerai, kad įprotis naudojant testavimo priemonės
kad yra ne tik konsolės dot žurnalą.
Gerai, kad galime imtis pažvelgti antrame pavyzdyje
kurios vis labiau pasinaudoja prototipai, kaip aš užsiminiau.
Taigi šiame pavyzdyje,
mes sukurti naują funkcija vadinama CS
ir tai yra kapitalizuojamos taip konvencija standartas
JavaScript yra, jei funkcija turėtų būti naudojamas
kaip konstruktorius, o ne
tiesiog normalus funkcija, galite pasinaudoti jį.
Taigi turiu kapitalo CS ir šis užima kintamojo courseId
ir courseTitle kuris Aš nustatyti šio courseId,
tai courseTitle konstruktorius.
Ir tada aš taip pat nustatyti studentų ir paskaitos kaip tuščių matricos.
Taigi priežasties, kad jūs -
Gerai, kad prototipas savybės vėliau buvo apibrėžta
žemyn čia - taip šablonas yra tik paprastas pabraukimo
šablonas, pabraukimo šablonas yra būdų, kad galite -
panašus į šablonus Dovydas buvo paminėta
serveryje, galite tiesiog parašyti scenarijų tegus
kuri nėra Javaskriptą scenarijų, bet tekstas HTML
ir ką aš darau su JQuery yra -
jis nelaiko jų atvira, taip, ten mes einame.
Su JQuery, tai vis HTML vertė tą šabloną
ir tada paleisti jį per pabrėžti komunalines bibliotekas
template engine.
Taigi dokumentai už tai čia apačioje
pagal naudingumo šabloną
bet iš esmės galite skaityti šiek tiek daugiau apie jį.
Tačiau ji įvertina šią eilutę ir paverčia jį į funkciją
kurį mes galime tada perduoti duomenis į ir ji vadiname dinamiškai.
Ateinančius du būdai turiu yra addStudent ir addLecture.
Tai tiesiog įtraukti juos į vidaus masyvai, kad aš nustatyti
konstruktorius ir tada tampa metodą.
Taigi, kurkime naują Pavyzdžiui CS vadinamas 164
kurie turi šį kursą skaičius 164 ir pavadinimas.
Ir tada CS50, kuri turi CS50 ir intro CS1
ir tada pridėti keletą paskaitas studentams
ir tada skambinti CS50 padaryti.
Ir jei aš paleisti kodą, todėl Aš darau, kad su Eval.
Jūs niekada nori naudoti eval, bet aš tiesiog tarsi
imtis visų "JavaScript" tai čia
ir vykdyti jį skristi.
Tai padaro į tai šablonas šių naujų atvejų
CS klasę, kuri turi savybės, todėl jau dingo
per ir padaryta addLecture ir addStudent vienas.
Ir kaip jau minėjau nes aš grąžinti tai,
Aš iš tikrųjų gali grandinei jų addLecture ir addStudent skambučiai
ir jis bus dirbti taip pat gerai.
Kitas bruožas JavaScript tai dar labiau naudinga
serverio pusėje, kur tikrai bet kuriuo metu
jei jūsų prašymas gauna daugiau nežinau, kur esate
ir tai sunkiau nustatyti Šios individualios ribinės reikšmės
kad minėjau "Chrome inspektorius
naudoti debugger raktinį žodį.
Taigi, tai tik D-E-B-U-G-G-E-R.
Ir, kai jūs įtraukėte Debugger raktinį kodą
ir jūs turite - ten mes einame, du Gs.
Kai jūs galėsite įdėti debugger raktinį kodą
ir dirbate Debugger
pavyzdžiui, "Chrome" Inspektorius čia
arba serverio pusėje Chrome " Inspektorius, jis pasakoja JavaScript
sustabdyti vykdymą dėl tos linijos kodo ir tai leidžia Jums
dėti per likusį iš kodų vykdymą.
Taigi, jei aš spustelėkite Vykdyti kodą čia, tai dabar sustoti
Šiuo debugger linijos ir galiu žr. Gerai, štai iš CS50 vertė
ir tai gavo kursas pavadinimas, žinoma, ID,
jis gavo ne paskaitas, studentai.
Ir tada aš galiu žingsnis per Visa addLecture,
Matau tai stumia prie šių paskaitų,
pele per, kad "Hello World".
Galiu iš tikrųjų konsolės tai padaryti, todėl tai yra nustatyta
dabartinio objekto kad viduj
Ši paskaita yra "Hello World".
Ir išlaikyti tarpinis per kiek noriu.
Jei aš nenoriu dėti
į skambinimo funkcijos "priežastis Aš žinau, ką tai vyksta
padaryti einant į addLecture, ten tai mygtukas čia
kuris sako: "Step Over kitą skambinimo funkcijos ", todėl galiu eiti
iki taško, aš būčiau esu gal įdomu apie ką nors.
Kaip, pavyzdžiui, 164 padaryti.
Taigi šiuo metu, tai bus suteiktos.
Matau šį šabloną yra sudarytas šablonas.
Matau šiame I punkto turi turėti dvi studentų
ir dvi paskaitos.
Ir tada ten prototipas grandinės, kad aš turėjo omenyje.
Taigi nutylėjimą, kuris ateina kartu tik su objekto
JavaScript apskritai,
ji ateina su dviem styginių vertė konstruktorius.
Ir tada tie, kurie Aš pridėjau apie save
su addLecture, addStudent ir tada savybės
kad yra unikalus šis instancija klasės
kaip tai buvo nurodyta su nauja raktinį žodį.
Taigi, galime daryti tik vieną daugiau pavyzdžių apie tai
ir tada mes žingsnis į kai daugiau įdomių dalykų
serverio pusėje.
Taigi eikime į priekį ir atidaryti šis paskutinis pavyzdys, kurį galima -
pažiūrėkime, kur yra kodas?
Aš nežinau, iš kur tai atėjo.
Gerai, gerai, mes galime tiesiog praleisti per šį kodą tada iš tikrųjų -
oi laikykis, manau, aš praleidau Stilių kodą.
Gerai, kad galime padaryti tai šiek tiek didesnis.
Šiame pavyzdyje, aš rodau šiek tiek daugiau apie nustatymo
iki prototipo grandinėje,
taip sukurti palikimą su JavaScript.
Taigi šiuo atveju, mes turime katalogas, kuris vyksta
kad turbūt išlaikyti kelis kursus.
Ir taip katalogas turi an addCourse metodai.
Taigi, ji patikrina, ar kursas tai praėjo yra instancija
Žinoma, kaip taikomos su nauja raktinį žodį.
Taigi, jei jūs bandote ir siųsti
kažkuo kitu, ji klykauti į tave.
Padaryti būdas, kuris bus padaryti kiekvienas kursai
, sudarydama savo šabloną apačioje.
Ir mes turime kursą kuriais susipažinti
Šiuo atveju pagrindas klasė individualūs departamentas kursai.
Ir užuot nustatę kiekvieną
Dalyko tašku prototipas taškų metodas
ar turtą apskaitoje pratęsti pagalbininkas pabraukimo bibliotekoje
rūšiuoti kvietimo pratęsti šis prototipas su visais
šių savybių, kurios yra naudinga tiek lengviau skaityti.
Ir tada žemyn čia daro tai, kas žinoma kaip nustatyti
iki prototipo grandinėje.
Taigi, iš tikrųjų tai yra mažai sudėtinga žmonių pirmą kartą
ir net dar padarę tai tam tikrą laiką, tai tarsi sunku
wrap savo galvos aplink.
Tačiau neleiskite, kad panika jums.
Taigi, aš įsteigti naują -
visiškai nauja klasė prieštarauti čia CS.
Ir konstruktorius,
Aš sakau kursą Taikyti šį argumentus.
Taigi argumentai yra ypatinga vertė Manau, galima jį pavadinti
JavaScript, raktinis žodis, kuris turi viską
nuo visko, kas plaukė yra argumentai
kad funkcija yra su argumentus vadina,
su argumentais raktinį žodį.
Taigi, kaip man skambina su žinoma dot taikyti,
tai dabartinis kontekstas su kuria CS yra vadinamas.
Taigi, kai aš ja pasinaudoti su nauja tai - tai vertė CS.
Ir aš sakau tai vadina Žinoma metodas čia.
O gaila - tai vadiname Žinoma metodas čia
bet nustatyti šią vertę būti kokia vertė
tai yra čia.
Taigi taikyti raktažodį leidžia jums rūšiuoti pakeisti būseną
tai, kuri yra kaip JQuery leidžiama rūšiuoti jungiklis
iš tai jums kaip jūs ketinate per
ir padaryti DOM elementus vietoj JQuery objektas.
Taigi, dabar aš ruošiuosi nustatyti laikinas funkcija
kuris bus patraukti prototipas žinoma.
Ir tarsi jį jos prototipo
ir tada nustatyti prototipą ant CS funkcija objektą
į naują pavyzdžiui, kad.
Taigi iš esmės aš sakydamas vietoj -
jei aš žemyn čia padarė cs DOT prototipas Lygu naują kursą.
Tada ji būtų paskambinus viską
Šiame konstruktoriaus funkciją,
kurios aš ne būtinai norėjo.
Taigi, viskas, ką aš darau yra tarsi sukurti beveik
kaip pakaitalas funkcija, kuri turės kursai prototipą
ant jo ir tarsi imituoti prototipą -
Žinoma, bet be daryti viskas konstruktorius
ir nustatyti, kad į prototipą.
Ir tada aš tiesiog pridėti tiek departamentas
šiuo atveju kompiuteris Mokslas CS objektą.
Ir tada aš turiu rūšiuoti tiltas portalo daro.
Ji neveikia IE9.
Štai kodėl aš norėjau rodyti rūšies kaip -
kas tai daro po gaubtu.
Bet jūs galite nustatyti, kad jis iki tokiu pačiu būdu
kur ECON Lygu funkciją Žinoma taikyti šiuos argumentus
ir tada pasakyti ECON dot prototipas Lygu objektas dot CreateCourse
dot prototipas.
Taigi, jis sukuria naują objektą kuri yra tik prototipas
už kursą ir tada nustatyti departamentą ten.
Taigi dabar galime tiesiog eiti nustatytas Debugger čia ir spustelėkite paleisti.
Čia mes eiti.
Taigi CS164 matome prototipas grandinės mes turime
savybių, kurios buvo nustatyti konstruktorius.
Taigi vertybės tai, kad buvo nustatyti ir tada prototipas grandinė
už CS objektą jis turėjo skyrius Informatika nustatyti.
Ir tada pagrindinis prototipas grandinės,
tada mes visi metodai ir savybės
kad yra unikalus Žinoma objektas.
Ir tada mes turime baziniai objektai.
Taip, kad greitai rūšiuoti pavyzdys prototipo grandinėje.
Ir, kaip matote čia, ten yra dvi vertės, per departamentą.
Taigi yra skyrius kompiuterių mokslo
ir tada skyrius neišvardytos kuri pasakiau
kaip numatytoji reikšmė čia.
Taigi prototipas grandinės iš tikrųjų yra tik po vieną
nuoroda, sąrašas.
Ir kaip jis bando rasti objektą,
jis bus pradėti aukščiausio lygio vertė.
Taigi, kas yra apibrėžta konstruktorius funkcija
ir tada rūšiuoti eiti prototipas grandinės iš ten.
Todėl, kad ji konstatavo, todėl -
jei čia, sakau CS50 taškas departamentas,
ji pasakys, Computer Science.
Bet jei aš sakau, var -
[Pauzė]
Bet jei aš sakau, humanitarinių Lygu naują kursą
ir tada aš sakau, humanitariniai dot departamentas,
Žiūrėsiu departamentas sąraše nėra , nes jis išvyko į pirmą -
Galiu pažvelgti prototipą grandinės čia iš tikrųjų.
Taigi jis nuėjo pirmą kursą prieštarauti ir pamačiau, kad nieko
nuo prototipo grandinėje ne šis lygis departamentas
arba universalinės vertybes, todėl tada jis peršoka į kitą lygį,
Žinoma, ir išvaizda perduoti ten ir suranda jį.
Taigi tai tiesiog tarsi krinta iš viršaus į apačią
ir tai tarsi kažkas, kad unikalus
apie JavaScript kad jūs galite pakeisti bet
Šių ne vertybes bet kuriuo metu.
Taigi konstruktoriaus arba individualus metodas objektą
jei noriu tai nustatyti departamentas prie kažko naujo,
arba jei aš net nori nustatyti bet kurią iš šių funkcijų
kad jau egzistuoja
kažką naujo, Aš laisvai padaryti.
Taigi dabar turiu CS50 tašką addLecture, atrodo, kad.
Ir jei aš noriu jį į CS50 addLecture tik Lygu
į tuščią funkcija.
Tai dabar matau, tai tiesiog visiškai pasikeitė
kurie jūs negalite padaryti dar kalbas
kur jūs turite griežtesni klasė remiantis paveldėjimo
ir viskas yra rūšiuoti įsteigti.
"JavaScript" yra labai, labai lanksčiai atsižvelgiant į tai.
Gerai, tegul šuolis atgal į skaidres.
Taigi, jei, pavyzdžiui, jūs visada patinka funkciją
turi ypač tai vertė, nustatyta už jį.
Galite skambinti funkcija dot suriši
ir nustatyti, kas vertė tai turėtų būti.
Jūs galite galvoti apie tai, kaip -
"Bandau galvoti geras realaus pasaulio pavyzdys, bet "
jei norite apsaugoti savo kodą
prieš kažkam galbūt vadindami jį su vertės
kad nebūtų tai.
Kaip, pavyzdžiui AJAX atgalinio ryšio, pavyzdžiui, viršija ar klaidų.
Tie, kurie paprastai nėra vadinamas
su gera semantinis vertė tai.
Ir jūs, pavyzdžiui, "Gerai, aš visada noriu, kad tai būtų vertė
Kurso tikslas kad aš dirbu su.
Arba vaizdas, kurį aš tikiu, dirbti su mano kodą
, kuri atstovauja tai DOM mazgas, galite nustatyti -
galite susieti kontekstą tai ir tada, kai ji vadinama vėliau
pagal JQuery ir ji neturi vertė tai jis bus klijuoti
ką jūs ribojasi su.
Tada ten skambinimo funkcijos buvo galite nurodyti kontekstą
ir nurodyti, kokios kintamąjį argumentų skaičius.
Ir tada ten funkcija taikyti kurį gali praeiti
atsižvelgiant į kontekstą ir tada arba masyvas
arba argumentai prieštarauja, kad Minėjau, kaip matote ten.
Ir į bet argumentai funkcija, kuri jums skambinti,
Jūs galite tiesiog įvesti Žodis "argumentus"
ir turėsite visus argumentai.
Ji turi "ilgis" nuosavybė
tai kaip galima argumentai buvo faktiškai perduodama kad metodai
nes JavaScript Jūs galite rūšiuoti kvietimo
su kintamųjų numeriai argumentų.
Tai naudinga sakydamas jei tai turėjo vieną argumentą,
atlikite šį kodą kelią.
Jei jis turėjo du, galbūt norite sekti kitą būdą.
Tai leidžia jums turėti tikrai dinaminiai API jūsų metodai.
Jūs galite galvoti apie kad su JQuery
pavyzdžiui, kai jūs turite doleris dot arba įpareigoti.
Ir tai tarsi nėra skirtingi dalykai
, ar jūs įdėti vieną argumentas ar du ar trys
arba pradėti jį su funkcija.
Ji naudoja argumentus turtas
ir argumentai ilgis daug atvejų
turėti šią magiją funkcionalumas atsitikti.
Dalykų, jūs negalite padaryti su argumentai yra jį naudoti tik
pagal nutylėjimą kaip masyvą.
Taigi galima pasakyti argumentus trijų ir nustatykite jį į kažką
kaip galima naudojant masyvas užduotis.
Galite naudoti - daug iš pabraukimo būdus
už arba kolekcijų ar dirbti su matricomis,
galite pereiti į argumentus ir suprasite
kad Tai argumentai objektas ir rūšiuoti
iš rūpintis, kad už jus.
Bet jei norite naudoti , perduodamos argumentai
per kaip masyvo funkciją,
galite naudoti pabraukimo dot du masyvo.
Vienas numeris komunalinių funkcijų
kurie yra pastatyti pabrėžti.