>> Kull dritt, hekk illum, Jien ser jitkellem
dwar JavaScript u kif huwa differenti minn lingwi oħra
li tista 'tkun użati biex simili PHP.
Għalhekk fl-aħħar taħdita dwar It-Tnejn, tkellimna ftit
dwar dak li huwa simili, x'hemm familjari bejn JavaScript
u PHP jew Python jew Ruby jew C jew lingwi oħra
li int diġà familjari magħhom.
Iżda JavaScript huwa attwalment għandha tieħu verament uniku
fuq il-mudell oġġett li jagħmel huwa tip ta 'kompletament differenti
minn aktar lingwi li int ser jittrattaw.
Allura funzjonijiet huma tip
tal underappreciated kunċett JavaScript.
Dawn huma mod aktar qawwija minn huma f'lingwi oħra
għaliex dawn jistgħu fil - għal raġuni waħda,
dawn qed kapaċi li jkunu stabbiliti bħala valuri.
Allura dritt hawn għandna var x ugwali funzjoni
u huwa l-ewwel klassi valur li tista 'tiġi mgħoddija
madwar bħala argument.
Allura inti ma għandekx tiddikjara funzjoni x
u biss użu x f'dak ambitu.
Inti tista 'tgħaddi l-valur ta' x kullimkien madwar, tafu,
bħala argument in funzjoni oħra
fejn inti tista 'modulu esportazzjoni kif David imsemmi fil node.
Għalhekk il-punt li jmiss huwa
li funzjoni huwa joġġezzjonaw JavaScript.
Allura inti tista 'attwalment stabbiliti proprjetajiet bħall-valuri
fuq funzjoni u biss jittrattaw huwa simili huwa oġġett.
Allura meta inti taħdem ma jQuery, tafu, li dollaru
u mbagħad inti tgħaddi selettur fih
u jinvokaw bħala funzjoni.
Iżda imbagħad inti wkoll jkunu dollaru dot Ajax.
U li ma tip ta ' jagħmel sens jekk taħseb
ta 'funzjoni biss bħala xi ħaġa li tista 'tinvoka
jew sejħa.
Imma JavaScript jippermettilek li sett proprjetajiet fuq funzjonijiet
proprjetajiet bħala statiċi biss x dot someProp
kif semmejt hemmhekk.
Il-punt li jmiss li aħna qed se jmorru fil ftit aktar
fil-fond huwa l-fatt li funzjonijiet jistgħu jiġu kkurati
bħala klassijiet JavaScript.
Għalhekk hemm il-kunċett ta 'dan l-operatur il-ġdid
li toħloq każ ġdid ta ' il-funzjoni flimkien ma 'tip
ta 'prodotti simili korp ta' klassi simili li tiġi flimkien miegħu
u aħna qed tmur biex tmur fis dan ftit aktar,
huwa msejjaħ il-prototip.
U huwa x'hemm jagħmel JavaScript ħafna uniku meta mqabbla
għal lingwi oħra li huma klassi bbażati,
JavaScript huwa prototip bbażata.
U mbagħad biss fuq il-qiegħ hemmhekk,
funzjoni tista 'sempliċement jiġu msejħa kjarament kif aħna qed jintużaw biex.
Allura li xejn ġdid.
Ħaġa oħra li l-uniku huwa
li arrays huma attwalment oġġetti.
Dawn mhux qed simili huma fil-PHP
fejn inti biss joħolqu firxa ġdida.
Dan huwa attwalment shorthand biex tgħid firxa ġdida.
U array huwa attwalment subklassi ta 'oġġett.
Allura li xi ħaġa differenti u I ser imorru
fi ftit aktar dettall fuq dan.
U l-kapaċitajiet debugging
ma JavaScript huma verament mhux imqabbla safejn stajt tidher.
Din hija screenshot tal-Ispettur Chrome
li aħna qed tmur biex tkun qed tuża għall-bqija
tal-preżentazzjoni illum.
U biex tikseb dan, inti biss mur għall-fajl għodod iżviluppatur
u miftuħ Chrome Ispettur jew tista 'dritt ikklikkja
u kklikkja juru element I jaħsbu huwa fuq paġna HTML
jew Naħseb li huwa kmand għażla J jiftaħ dan up.
Iżda aħna ser imorru fis dan u inti jistgħu attwalment stabbiliti breakpoints
kif int taħdem permezz il-kodiċi JavaScript u sort
tal jevalwa dak lokali varjabbli, dak il-valur
ta 'dan huwa u jagħmilha mod aktar faċli għall-kodiċi debug.
U jirrispettaX - dan mhux kostrett code-ġenb browser
imma int tista 'attwalment run istanza
ta 'dan l-Ispettur Chrome għall-kodiċi tiegħek naħa tas-servizz
li huwa verament pulita għaliex inti tista 'tintervjeni permezz linja b'linja
bħala talba jidħol fis tiegħek server u tara x'inhu jiġri
u jilagħbu bil-varjabbli fil-console stabbiliti hawn.
So kif semmejt, JavaScript hija lingwa bbażata fuq prototip
li jfisser li hemm sett ta 'valuri awtomatiċi li huma tip
ta moħbija għal kull funzjoni
fl-oġġett dot proprjetà prototip.
Allura huwa tip ta 'hash tal- valuri awtomatiċi biss differenti
li meta inti jinvokaw jiffunzjonaw bil-keyword ġodda,
dawk huma stabbiliti mill- default funzjonijiet
li huma disponibbli fuq l-istanza.
Allura li attwalment huwa verament effiċjenti għall--
huwa mod effiċjenti ta ' ħolqien oġġetti memorja għaqli
minħabba li l-JavaScript runtime biss għandu jżomm track
tal-prototip ta 'l-oġġett.
Huwa tip ta 'punti għal dik
meta inti cretae ġdida eżempju ta 'klassi.
U tista 'wkoll tkun tixbah wirt Kif inhu magħruf
fil-lingwi ibbażata klassi fejn inti għandek sort
simili ta 'dan jestendi li, testendi li inti tista 'tkun tixbah
li fl JavaScript permezz ta 'dak li sejjaħ il-
katina prototip.
U aħna ser ara l-eżempji dwar dan.
Hekk jekk tiegħek - plugins jQuery attwalment huma jirrakkomandaw jQuery
awturi għall-użu dollaru dot fn biex tiżdied il-funzjonalità
għal-librerija jQuery.
U aħna qed attwalment għaddejjin biex jaqbżu - Għalhekk, fuq din il-paġna,
aħna għandna l-dollaru - I inkludew jQuery.
U jekk inti tagħmel dollaru dot fil-console
li semmejt jġibu inti up permezz shift kmand J
jew biss sejrin lejn View, Developer, Developer Tools
u jmorru l-tab Sorsi.
[Rimarka inaudible]
Oh żgur. Allura meta bdejt tip fil varjabbli,
huwa auto mimli għalija dak li huwa disponibbli hemmhekk.
So I ittajpjat fil-dollaru u I tista ' tara Naħseb Chrome għandha xi
mibnija fil-dollaru, dollaru u dollaru x.
Allura dritt issa I biss jixtiequ dollaru u I jitqiegħdu fil-dot.
U allura juri me il-proprjetajiet kollha
li huma disponibbli fuq l-oġġett jQuery.
Imma jekk I do dollaru dot prototip,
I issa tara l-metodi li jien użati biex jużaw
meta għandi l-dollaru, selettur u mbagħad I katina off li bil-
tafu, żid klassi jew tehmeż jew ċċajpar jew xi simili.
Dawk huma kollha attwalment fuq il-prototip
li taħt il-barnuża l jQuery toħloq każ ġdid fih innifsu
u tip ta 'ġlud kollha dawk id-dettalji mill inti.
Għalhekk il-punt li kien I jagħmlu lura fuq hawn
mal-funzjoni, huma attwalment jaħbu prototip mill inti
u biss alias dan għal dollaru dot fn.
Allura ħafna nies fil-fatt ma jirrealizzawx
li hemm prototip taħt il-that's barnuża -
li inti jista 'jtejjeb id u tiżdied il-funzjonalità addizzjonali
għal kull każ jQuery jekk inti tixtieq.
Allura l-"ġodda" operatur verament tip ta 'diffiċli
biex jifhmu fl-ewwel.
Meta inti sejħa funzjoni bil-"ġodda",
huwa ta 'kompletament differenti ta 'żjarat tal-funzjoni
kif jekk inti biss imsejħa evidentement.
Allura l-"ġodda" operatur joħloq dak li jissejjaħ każ ġdid
ta 'oġġett jew ġdida eżempju ta ', inti tista' taħseb
tal-oġġett bħala klassi.
U meta jiġri dan, il-valur ta 'dan li jista' jkun familjari
ma minn jQuery, dawn it-tip ta jistabbilixxu dan
għal dak kollu li huwa konvenjenti fil-ħin.
Dawn normalment stabbilit li l- node DOM attwali li int
fuq kif inti qed tmur permezz simili kull jew xi ħaġa bħal dik.
Huma - Dan il-valur huwa mistenni jkun il-valur ta 'l-istanza
li inti maħluqa bl-"ġodda", li jinkludi kollox
fuq il-katina prototip u kollha mill-metodi li youd ssib
bħala proprjetajiet prototip.
Allura dan jiddependi fuq kemm funzjoni hija magħrufa,
dak il-valur ta 'dan huwa.
U huwa verament konfuża jekk int ġodda għall JavaScript.
Iżda kull funzjoni li sejjaħ għandha - tkun fuq dan il-valur.
Għalhekk anki jekk inti ma jkunux ħolqu każ ġdid ta 'xi ħaġa,
li dan huwa preżunt li jkun globali.
Jew tista 'sejħa funzjoni użu tal-metodu sejħa
fejn il-metodu japplika fl JavaScript.
Tista 'l-funzjoni u tispeċifika liema dan għandu jkun.
Allura inti tista 'tagħmel dan dinamiku, li huwa verament b'saħħtu
iżda tippermetti wkoll li inti tagħmel affarijiet li jistgħu jqarrqu
u konfuża għall- żviluppaturi oħra
jekk dawn mhux qed jużaw il-fatt.
U jQuery, nixtieq jargumentaw jagħmilha saħansitra aktar konfużjoni
billi jagħmilha konvenjenti u dan ikun iffissat
l-node DOM attwali.
Iżda r-regola sempliċi biex tiftakar dak il-valur ta 'dan huwa
meta inti qed tfittex
fuq sejħa funzjonali hija dak ix-xellug tal-dot.
Mela jekk għandek oġġett
u huwa xi ħaġa dot xi ħaġa hija l-funzjoni
li int ssejjaħ allura l- ewwel valur huwa x'inhu l-valur
ta 'dan huwa.
Allura hawnhekk huwa eżempju kodiċi
fejn jien ħolqien oġġett ġdid litterali
li huwa biss l-oġġett maħluqa bl-braces kaboċċi
u jien iffissar isem li Bob
u mbagħad I jkollhom sayName Metodu hawn li -
hekk ġewwa dan sayName jekk jien x dot sayName,
il-valur ta 'dan huwa ugwali li x għaliex ix-xellug
ta 'l-dot hija x. Mela jekk I call it x dot sayName,
huwa ngħid Hello Bob.
U mbagħad eżempju ieħor
fejn jien attwalment jassenja x dot sayName, il-funzjoni
għall-varjabbli Y, li kif semmejt
fl JavaScript inti tista 'tassenja funzjonijiet
varjabbli kull meta inti tixtieq, huwa verament flessibbli mod,
imma issa meta I call Y, huwa tilef il-kuntest ta 'x.
Allura issa dan huwa globali jew jekk int fil-modalità stretti,
Nemmen li huwa null jew undefined.
Iżda - Allura Y mhuwiex dak li int jistennew hawn jekk inti qed tfittex
fuq x u int ser li jsejħu sayName,
inti qed jistennew dan l-isem suppost tkun Bob.
Imma jekk inti jinġibed off l-oġġett u hija imsejħa
minnha nfisha, dan issa huwa globali.
U dan huwa dak I kien isemmi meta tara dollaru dot dan,
inti spiss ma naħsibx x'inhu attwalment għaddejjin.
Iżda jQuery tip ta ikollu tagħhom lingwa speċifika-dominju stess
biex jittrattaw ma 'dan u mhuwiex dak li qed jintuża
fl JavaScript.
U I punt dan out għaliex dan huwa verament importanti
għall-kitba strutturat tajjeb oġġett orjentati kodiċi
fl JavaScript li verament ikollhom fehim tajjeb u jaħtfu
ta 'kif taħdem din u kif ix-xogħlijiet mudell oġġett
u kif l-operatur il-ġdid jaħdem.
Inkella, inti ser jispiċċaw bi spagetti jQuery
fejn kollox huwa tip ta 'kulħadd fuq il-post
u jittratta biss mal-DOM.
Jekk inti tista 'attwalment jiktbu JavaScript
b'mod aktar strutturat, jagħmilha ħafna aktar faċli
biex jaħdmu ma ', biex issolvi tal separati l-preokkupazzjonijiet
mill-trattament bl- aġġornament tal-DOM u li jittrattaw
mal-loġika attwali u l-kodiċi.
Mela ejja tagħti ħarsa lejn Xi eżempji madwar li.
So I għandhom xi eżempji hawn.
Allura dan huwa biss eżempju sempliċi ta 'użu ta' oġġett JavaScript
u żżid ftit funzjonijiet lilha u mbagħad ħolqien sort
simili ta 'applikazzjoni minjatura.
Allura huwa sempliċi ħafna fil-fatt.
L-unika ħaġa li ma huwa fl-ewwel hi tinkoraġġixxi l-isem tiegħek.
So I ser jgħidu Tim u allura inti tista 'tibdel ismek Bob.
U li dan kollu applikazzjoni ma.
Imma dak li nixtieq li jiġi out hija kif tagħmlu.
So I jkollhom dan l-isem ġeneratur oġġett li għandu metodu bidu
li jitlob lill-utent għall-isem tagħhom
bi ftit ssejjaħ dan askForName
li jistabbilixxi hawn ma l-pront
jekk l-isem ma ġie assenjat allura huwa jitlob mill-ġdid
billi ċċempel dan askForName.
U mbagħad darba jiġrilha l-isem, huwa jappella dan l-isem aġġornament.
Allura dan imbagħad tistabbilixxi l- isem l-utent fil-tag h1.
U jekk l-isem ma jkunx stabbiliti, tixħet żball.
[Rimarka inaudible]
Oh żgur. Hekk hi tistipula l- isem l-utent fil-tag h1
billi ċċempel setDisplayName li tistabbilixxi l-HTML
fil-kontenitur isem JS u Jien prefiss kollha HTML tiegħi
ma seletturi JS biss għaliex huwa drawwa tajba biex jiksbu
fis biss biex jagħmlu dan mhux hekk konfuża
meta inti qed tuża seletturi simili tal-ID jew klassijiet
kemm għall-istil u għal-loġika
fil tiegħek JavaScript applikazzjonijiet aħħarija ta 'quddiem.
Għaliex jekk għandek differenti gruppi ta 'nies li jaħdmu
fuq il-bażi ta 'kodiċi u int jkollhom selettur hemm
li l-disinjatur jiddeċiedi għall-bidla għaliex it's -
ma ħarsa kbira, sabiex ikunu jridu jitqiegħdu fi klassi ġdida u jieħdu
out tiegħek u int jiddependu fuqha għal raġunijet JavaScript,
allura kodiċi tiegħek pawżi.
Huwa tajjeb li prefiss u sort
ta namespace bħal kważi l- Klassijiet relatati JavaScript '
jew attributi ma prefiss ta 'JS.
Allura dan huwa pretty sempliċi u tista 'tara
f'dawn il-każijiet kollha jien ssejjaħ jirritorna dan fl-aħħar.
Allura dan huwa tajjeb drawwa li jsibu rwieħhom,
li jtik hu valur tar-ritorn validu.
Fil askForName M'inix minħabba li jagħmel sens
li inti se tikseb l-isem lura.
Imma dak li jippermetti inti tagħmel imbagħad
jekk inti tirritorna dan l-aġġornament isem, huwa jirritorna l-valur
tal setDisplayName li hija jirritorna l-valur ta 'dan.
U li jippermetti li inti sort ta 'katina kif int użati
fl jQuery billi jirritorna il-valur ta 'dan kull darba.
Dan jirreferi għall- oġġetti kurrenti
sabiex inti tista 'sejħa dan dot askForName dot setDisplayName
u jkunu jistgħu jżommu l- valur ta 'dan u li inti
ikun hemm katina sbieħ hemmhekk.
U mbagħad fl - hekk dan it-tieni eżempju.
[Pause]
Kull dritt.
OK. Mela ejja imorru quddiem u tiftaħ il-console
u mur Sorsi tab tiegħi.
Aħna ser pop out dan attwalment.
Għalhekk fl-iżviluppatur Chrome għodod li semmejt,
hemm din il-biċċa fuq il-lemin u -
tista 'tara dan is-sinjal stop għalkemm fil-kontumaċja, huwa iswed.
Imma meta inti maws fuq dan, jgħid "Ma nieqaf fuq eċċezzjonijiet.
Ikklikkja l-nieqaf fuq eċċezzjonijiet kollha. "
U meta inti ikklikkja għal darb'oħra, dan idur ikħal.
U issa ghaċ li hemm żball jintefa
fil-kodiċi JavaScript tiegħek, inneħħu waqfien fil-punt u jippermetti li inti
biex tevalwa x'inhu għaddej.
Allura - U li verament utli kunċett huwa dwar li jiġi enfasizzat.
U mbagħad jekk tikklikkja għal darb'oħra, jirriżulta vjola
u dan huwa normalment dak I jżommha pulzieri
Hija biss jikser il-kodiċi meta jkun hemm eċċezzjoni
li ma ġiex maqbuda.
Allura ħafna drabi fil jQuery għal Pereżempju, dawn ma jippruvaw qbid
biex teżamina jekk browser jew le għandu xi tip ta kapaċità
u tkompli minn hemm.
Dan huwa biss meta hemm żball
li ma kienx maqbuda fil-qabda jipprova.
Mela ejja jippruvaw u jissottomettu isem li huwa vojt.
So I jista 'jara li l- kodiċi issa titwaqqaf
fil-metodu updateName u nista maws fuq l-ismijiet
u tara huwa vojt biex blank.
Hemm huwa ugwali għal blank.
Mela jekk mhux isem tarmi ġdida żball u issa I tista 'pass lura
permezz tal-funzjoni kolonna u jgħidu, "OK,
fejn ma dan ġejjin minn, "u ara dak il-valur ta 'klijent huwa.
Għalhekk għandha metodu askForName,
setDisplayName bidu u updateName.
U dan huwa biss verament utli mod tista 'tara jkollha l-
varjabbli li huma disponibbli f'dak ambitu kif ukoll
bħala l-varjabbli ta 'għeluq, sabiex kwalunkwe ħaġa li magħluqa
fuq minn din il-funzjoni.
U so I jista 'jara li - dak il-valur ta 'klijent huwa
u x'inhu l-valur ta 'dan huwa.
Allura dan "jikkawżaw aħna qed fil jQuery hija ugwali
għall-element DOM attwali.
Imma huwa verament utli għal debugging kodiċi
li jiksru fuq żbalji bħal dan.
Karatteristika oħra tal- Chrome Spettur hija
li fi kwalunkwe punt tista ' ikklikkja fuq il-linji differenti
fil-filliera u inneħħu break fil-postijiet
fejn ikollok sett breakpoints dawn qed imsejħa.
Hekk jekk I ikklikkja, il- line idur ikħal.
So let me tkompli l- eżekuzzjoni hawn, OK, li kissru.
U issa ejja isem tas-sett biex Alice u hit Issottometti.
Allura issa I tista 'tara anke qabel ma ltqajna sal-punt
ta 'aġġornament kollox, huwa issa waqfet dritt hawn hekk I jista 'jara
li dan l-isem tiegħi huwa Alice u mbagħad I tista 'tkompli -
let me rikarigu-paġna.
Kull dritt, hekk issa li huwa jibda fil-bidu mill-ġdid,
li tkun waqfet f'dan linja u I jista 'jara
dak l-isem bħalissa undefined.
askForName huwa li jiffunzjona huwa hija, hekk li wkoll spiss utli
jekk għandek funzjonijiet li huma ġejjin minn fajls differenti
jew postijiet differenti fl- kodiċi, tista 'tara fejn hi,
u mbagħad jaqbżu għal dan, se tenfasizza dan.
Allura tajjeb biex nikseb fil-drawwa ta 'użu ta' għodod debugging
li mhumiex biss console dot log.
OK, hekk ejja tagħti tħares lejn it-tieni eżempju
li tagħmel aktar użu ta ' prototipi bħala I kien evokati.
Allura f'dan l-eżempju,
aħna qed joħolqu ġdida funzjoni msejħa CS
u dan huwa kapitalizzat hekk l-istandard konvenzjoni
fl JavaScript huwa jekk funzjoni hija mistennija li jintużaw
bħala kostruttur, kuntrarju
għal ftit normali funzjoni, inti kapitalizzazzjoni dan.
So I jkollhom kapital KEFA u dan jieħu courseId varjabbli
u courseTitle li I stabbilit li din courseId,
dan courseTitle fil-kostruttur.
U mbagħad I wkoll jissettja l-istudenti u lectures bħala arrays vojta.
Allura r-raġuni li inti -
OK, sabiex il-prototip proprjetajiet mbagħad kienu definiti
down hawn ma '- hekk template hija biss jtennu sempliċi
template, template underscore tkun mod li inti tista '-
simili għall-mudelli li David kien semma
fuq is-server, inti tista ' biss jiktbu tag iskrittura
li mhuwiex JavaScript iskrittura iżda test HTML
u dak li qed nagħmel ma jQuery hija -
dan ma jżommx dawn miftuħa, yeah, hemm immorru.
Bil jQuery, huwa jkollna l- Valur HTML ta 'dik template
u mbagħad taħdem permezz tal- jenfasizzaw libreriji utilità
magna template.
Allura d-dokumentazzjoni għal dan hija stabbiliti hawn
taħt il-mudell ta 'utilità
imma bażikament inti tista 'taqra ftit aktar dwar dan.
Iżda huwa jevalwa din is-sekwenza u jibdel din in funzjoni
li aħna mbagħad jistgħu jgħaddu data fis u sejħa dinamiku.
Iż-żewġ metodi li ġejjin I jkollhom huma addStudent u addLecture.
Dawn biss żid lill- arrays interni li stajt stabbiliti
fil-kostruttur u allura l-metodu jagħti.
Allura, ejja joħolqu l-ġdid każ ta 'CS imsejħa 164
li għandu dan il-kors numru 164 u t-titolu.
U mbagħad CS50 li għandu CS50 u intro li CS1
u mbagħad żid ftit lectures istudenti
u mbagħad sejħa CS50 jagħti.
U jekk I run kodiċi, hekk Jien tagħmel dan bil-Evalwazzjoni.
Inti qatt ma verament tixtieq li tuża l-Evalwazzjoni, imma jien biss sort
ta 'teħid l- JavaScript li fil hawn
u eżekuzzjoni tagħha fuq il-fly.
Dan jirrendi fis dan Template dawn il-każijiet ġodda
tal-klassi CS li għandhom il-proprjetajiet, hekk aħna ħadthom marret
permezz ta 'u jsir addLecture u addStudent għal kull.
U kif semmejt għaliex jien jirritornaw dan,
I jistgħu attwalment katina dawn addLecture u addStudent sejħiet
u dan ser taħdem biss ukoll.
Il-karatteristika oħra JavaScript li huwa saħansitra aktar utli
fuq in-naħa server fejn int verament fi kwalunkwe ħin partikolari
jekk l-applikazzjoni tiegħek jitbaxxa akbar ma nafx fejn int
u huwa diffiċli li jiġu stabbiliti dawn breakpoints individwali
li semmejt fil- l-Ispettur Chrome huwa
tuża l-keyword debugger.
Allura huwa biss D-E-B-U-G-G-E-R.
U meta inti tpoġġi debugger keyword fil-kodiċi tiegħek
u inti għandek l - hemm immorru, żewġ Gs.
Meta inti tpoġġi l-debugger keyword fil-kodiċi tiegħek
u int tmexxi debugger
bħall-Chrome Spettur hawn
jew il-Chrome server sekondarji Ispettur, jirrakkonta JavaScript
biex iwaqqfu l-eżekuzzjoni fuq dik il-linja tal-kodiċi u mbagħad tippermetti li inti
pass permezz tal-bqija tal-eżekuzzjoni ta 'kodiċijiet.
Hekk jekk I ikklikkja kodiċi run hawn, huwa issa waqfien
fuq din il-linja debugger u nista ' tara OK, hawn l-valur tal-CS50
u huwa ta 'kors ltqajna titolu, naturalment ID,
huwa ltqajna ebda lectures, l-ebda istudenti.
U mbagħad I tista 'tintervjeni permezz l addLecture kollu,
I tista 'tara huwa imbuttar fuq dawn il-lectures,
maws fuq li, "Hello World".
I jistgħu attwalment fil- console tagħmel dan hekk din hija stabbilita
l-oġġett kurrenti li int pulzieri
Dan lecture huwa "Hello World".
U jżomm titjib permezz kemm irrid.
Jekk ma rridx li pass
fil-kawża sejħa funzjoni " Naf dak li għaddej
jagħmlu nidħlu addLecture, hemm din il-buttuna dritt hawn
li jgħid "Pass fuq il-li jmiss sejħa funzjoni, "u so I tista 'tmur
sal-punt kienu jien forsi jistaqsi dwar xi ħaġa.
Bħal per eżempju 164 jirrendi.
Allura f'dan il-punt, huwa se tkun mogħtija.
I jista 'jara din it-template huwa l-template ikkumpilata.
I jista 'jara f'dan il-punt I għandu jkollhom żewġ studenti
u żewġ lectures.
U allura hemm il-prototip katina li I kien qed jirreferi għal.
Allura l-waħda default li jiġi flimkien mal biss oġġett
b'mod JavaScript in ġenerali,
niġu ma 'żewġ string valur tal-kostruttur.
U mbagħad dawk li Stajt miżjud fuq myself
mal-addLecture, addStudent u allura l-proprjetajiet
li huma uniċi għal din eżempju tal-klassi
kif kienet invokat bil-keyword ġodda.
Mela ejja jagħmlu waħda biss aktar eżempju fuq dan
u allura aħna ser pass għal xi affarijiet aktar interessanti
fuq in-naħa server.
Mela ejja imorru quddiem u tiftaħ f'dan l-aħħar eżempju li tkun -
ejja ara, fejn huwa l-kodiċi?
I do not know fejn dan marru.
OK, ukoll, nistgħu biss skip matul dan il-kodiċi mbagħad fil-fatt -
oh iżżomm fuq, I think I qbiżt il-karta tal-istil għall-kodiċi.
OK, hekk ejja tagħmel dan ftit akbar.
F'dan l-eżempju, jien li juri ftit aktar dwar l-istabbiliment
fuq fil-katina prototip,
hekk twaqqif wirt mal-JavaScript.
Allura f'dan il-każ, għandna katalgu li se
li jżommu preżumibbilment korsijiet multipli.
U hekk katalogu għandu AN metodi addCourse.
Għalhekk hija għandha tivverifika jekk il-kors thats għaddiet fl huwa każ
tal-kors kif invokat bil-keyword ġodda.
Hekk jekk inti tipprova u tibgħat
fil xi ħaġa differenti, se Yell fi inti.
Il-metodu tirrendi li se tirrendi kull wieħed mill-korsijiet
billi tiġbor template tagħha hawn taħt.
U aħna għandna l-kors li l-aċċess
f'dan il-każ il-klassi bażi għal korsijiet dipartiment individwali.
U minflok tat-twaqqif kull
naturalment il-dot prototip dot metodu
jew proprjetà bl-użu testendi helper fil-librerija underscore
sort ta 'sejħa jestendu dan prototip kollha
ta 'dawn il-proprjetajiet, li hija utli, ftit aktar faċli biex jinqara.
U mbagħad stabbiliti hawn tagħmel dak magħruf bħala iffissar
fuq fil-katina prototip.
Allura dan huwa attwalment ftit delikata biex in-nies fl-ewwel
u anki xorta wara li jsir dan għall awhile, huwa tip ta 'hard
biex nagħlaq ras tiegħek madwar.
Iżda ma let li biża inti.
Hekk jien twaqqif ta ġdida -
klassi kompletament ġdida joġġezzjonaw hawn, CS.
U fil-kostruttur,
Jien qal kors Applika din argumenti.
Allura argumenti huwa speċjali Valur I raden inti tista 'sejħa hija
fl JavaScript, l- keyword li tkun kollha
ta 'l-kollox li l- mgħoddija flimkien huwa argumenti
dik il-funzjoni huma disponibbli mal-argumenti sejħa,
bil-keyword argumenti.
So kif jien ssejjaħ b'kors dot japplikaw,
dan huwa l-kuntest attwali magħhom CS qed jissejjaħ.
Allura meta I jinvokaha ma ġodda huwa - huwa valur ta 'CS.
U jien qal call dan metodu kors up here.
Oh sorry - call dan metodu kors dritt hawn
iżda tistabbilixxi l-valur ta 'dan li jkun x'ikun il-valur
ta 'dan huwa dritt hawn.
Allura l-keyword japplikaw tippermetti inti tip ta 'bidla l-istat
ta 'din li hija kif jQuery huwa permess li sort ta 'swiċċ
out dan fuq inti bħala int għaddejjin
u tagħmel elementi DOM minflok l-oġġett jQuery.
Allura issa jien ser jistabbilixxu funzjoni temporanju
li se grab- prototip tal-kors.
U tip ta 'sett huwa għall-prototip tiegħu
u mbagħad stabbiliti l-prototip fuq il-funzjoni oġġett CS
għal każ ġdid ta 'dak.
Għalhekk bażikament jien qal minflok -
jekk I stabbiliti hawn għamilt CS dot prototip ugwali kors ġdid.
Allura jkun ssejjaħ kollox
f'dan il-funzjoni kostruttur,
li jien kieku ma neċessarjament riedu.
So kollha li qed nagħmel huwa tip ta 'ħolqien ta' kważi
bħal funzjoni sostitut li se jkollhom l-prototip korsijiet
fuqha u tip ta ' jimitaw il-prototip -
il-kors, iżda mingħajr ma jsir kollox fil-kostruttur
u tistabbilixxi li l-prototip.
U allura jien biss żżid hekk id-dipartiment
f'dan il-każ Computer Xjenza għall-oġġett CS.
U mbagħad I jkollhom tip ta ' verżjoni pont ta 'kif isir dan.
Hija ma taħdimx fil IE9.
Allura hu għalhekk li jien ridt biex juru tip ta 'kif -
dak li din qed tagħmel taħt il-barnuża.
Iżda int tista 'tistabbilixxi bl-istess mod
fejn Econ ugwali funzjoni Naturalment japplikaw dawn l-argumenti
u mbagħad jgħidu Econ dot prototip ugwali oġġett dot CreateCourse
dot prototip.
Allura huwa joħloq oġġett ġdid li huwa biss il-prototip
għall-kors u mbagħad jistabbilixxu l-dipartiment hemmhekk.
Allura issa ejja biss jmorru tistabbilixxi debugger hawn u kklikkja fuq run.
Hemm immorru.
Allura CS164 nistgħu naraw il- katina prototip konna ltqajna l-
proprjetajiet li kienu stabbiliti fil-kostruttur.
Allura valuri ta 'dawn li kienu stabbiliti u mbagħad fuq il-katina prototip
għall-oġġett CS kellu dipartiment Computer Science stabbiliti.
U mbagħad fuq il-bażi katina prototip,
aħna mbagħad ikollhom l- metodi u l-proprjetajiet
li huma uniċi għall- l-oġġett kors.
U allura għandna l-oġġetti bażi.
Allura dik it-tip ta 'malajr Eżempju tal-katina prototip.
U kif tistgħu taraw hawn, hemm huma żewġ valuri għal kull dipartiment.
Għalhekk hemm dipartiment tax-xjenza tal-kompjuter
u mbagħad dipartiment mhux elenkati li għidt
bħala l-valur default hawn.
Allura l-katina prototip huwa attwalment biss weħidhom
lista link.
U kif tipprova tinstab proprjetà,
dan ser tibda fil- valur ogħla livell.
Allura x'inhu l-iddefinit fl- il-funzjoni kostruttur
u mbagħad it-tip ta jinżlu l- katina prototip minn hemm.
Allura għaliex hija kkonstatat, hekk -
jekk dritt hawn, I say CS50 dot Dipartiment,
inneħħu jgħidu Computer Science.
Imma jekk ngħid var -
[Pause]
Imma jekk ngħid istudji umanistiċi ugwali kors ġdid
u mbagħad I say istudji umanistiċi dot dipartiment,
I ser tara dipartiment mhux elenkati minħabba li marru għall-ewwel il -
I tista 'tħares lejn il-prototip katina hawn attwalment.
Għalhekk marru ewwel għall-kors joġġezzjona u raw hemm xejn
fuq il-katina prototip fil- dan il-livell għall-dipartiment
jew għall-valuri dipartiment hekk allura jumps għall-livell li jmiss,
il-kors u jistenna jgħaddi hemm u isibha.
Allura hija biss tip simili jinżel mill-top down
u li tip ta ' xi ħaġa li l unika
dwar JavaScript huwa li tista 'tbiddel kwalunkwe
ta 'dawn il-valuri fil- kwalunkwe ħin partikolari.
Għalhekk fl-kostruttur jew fi metodu individwali fuq l-oġġett
jekk irrid li jistabbilixxu dan dipartiment għal xi ħaġa ġdida,
jew jekk I saħansitra jridu jistabbilixxu kwalunkwe minn dawn il-funzjonijiet
li huma diġà jeżistu
għal xi ħaġa ġdida, Jien liberu li tagħmel dan.
Allura dritt issa għandi CS50 dot addLecture, qisu dak.
U jekk irrid li tistabbilixxi li CS50 addLecture biss ugwali
funzjoni vojt.
Allura issa I tista 'tara huwa biss inbidlet kompletament
li int ma kapaċi tagħmel lingwi oħra
fejn inti għandek aktar strett klassi ibbażata wirt
u kollox huwa tip ta 'jitwaqqaf.
JavaScript huwa ħafna, ħafna flessibbli fir-rigward li.
OK, ejja jaqbżu lura fil-pjastri.
Mela jekk per eżempju inti xorta jixtieq funzjoni
li jkollhom partikulari dan il-valur stabbilit għal dan.
Tista 'sejħa funzjoni dot jorbot
u jistabbilixxu liema l-valur ta 'dan għandu jkun.
Inti tista 'taħseb bħala -
"Jien jippruvaw jaħsbu ta ' tajba eżempju dinja reali imma ",
jekk inti tixtieq li tipproteġi kodiċi tiegħek
kontra xi ħadd potenzjalment ssejjaħ dan b'valur
li ma tkunx dan.
Bħal per eżempju Ajax Callback bħal eċċess jew żball.
Dawn huma tipikament mhux imsejħa
ma 'tajba semantika valur ta 'dan.
U int simili, "OK, I dejjem tixtieq li dan ikun l-valur
tal-oġġett kors li jien jaħdmu ma '.
Jew il-fehma li jien jaħdmu ma fil-kodiċi tiegħi
li jirrappreżenta dan Node DOM, inti tista 'tistabbilixxi -
inti tista 'torbot kuntest għal dan u mbagħad meta huwa msejjaħ aktar tard
billi jQuery u ma jkollhom valur tajjeb ta 'dan li ser twaħħal
għal dak li inti tmiss bl.
Imbagħad hemm sejħa funzjoni ġew inti tista 'tispeċifika l-kuntest
u tispeċifika kwalunkwe varjabbli diversi argumenti.
U allura hemm funzjoni japplikaw fejn inti tista 'tgħaddi
fil-kuntest u imbagħad jew firxa
jew l-argumenti toġġezzjona li Semmejt kif inti tara hemm.
U l-argumenti fi kwalunkwe funzjoni li inti sejħa,
inti tista 'biss tip il-kelma "argumenti"
u ser ikollhom kollha l-argumenti.
Hija għandha "tul" proprjetà
li hija kif Mejju argumenti kienu attwalment mgħoddija li l-metodi
peress li fl JavaScript inti tista sort ta 'sejħa
bin-numri varjabbli ta 'argumenti.
Huwa utli qal jekk dan kellu argument wieħed,
imbagħad issegwi din it-triq kodiċi.
Kieku kellu tnejn, inti tista ' tixtieq li ssegwi mod ieħor.
Dan jippermettilek li jkollhom verament APIs dinamiċi għall metodi tiegħek.
Inti tista 'taħseb li ma jQuery
bħal meta jkollok dollaru dot fuq jew torbot.
U tip ta 'ma affarijiet differenti
jekk inti tpoġġi wieħed argument jew tnejn jew tlieta
jew tibda bil-funzjoni.
Qed tuża l-argumenti proprjetà
u l-argumenti tul fil-lott ta 'każijiet
li jkollhom din magic funzjonalità jiġri.
L-affarijiet li inti ma tistax tagħmel ma argumenti qed tużah biss
awtomatikament bħala firxa.
Allura inti tista 'tgħid argumenti tlieta u stabbilit għal xi ħaġa
kif inti tista 'tuża l-assenjazzjoni array.
Tista 'tuża l - ħafna mill-metodi jenfasizzaw
jew għall-kollezzjonijiet jew għall-ħidma ma arrays,
inti tista 'tgħaddi fl-argumenti u ser tirrealizza
li huwa ta 'argumenti oġġett u sort
ta 'tieħu kura ta' dan għalik.
Iżda jekk inti tixtieq li tuża l- argumenti li huma mgħoddija
permezz ta 'funzjoni bħala firxa,
inti tista 'tuża underscore dot tnejn array.
Wieħed minn numru tal-funzjonijiet ta 'utilità
li huma tinbena jiġu enfasizzati.