>> Allt í lagi, svo í dag, Ég ætla að vera að tala
um JavaScript og hvernig það er frábrugðin öðrum tungumálum
sem þú gætir verið notað til eins og PHP.
Svo í síðasta fyrirlestri á Mánudagur, ræddum við dálítið
um hvað er svipuð, það sem er þekki milli JavaScript
og PHP eða Python eða Ruby eða C eða öðrum tungumálum
að þú ert nú þegar þekki.
En JavaScript það í raun hefur mjög einstakt taka
á mótmæla líkan sem gerir það tegund af algjörlega öðruvísi
en flestum tungumálum sem þú ert að fara að takast á við.
Svo aðgerðir eru eins konar
af underappreciated hugtak í JavaScript.
Þeir eru leið öflugri en þeir eru í öðrum tungumálum
vegna þess að þeir geta í - fyrir einn ástæða,
þeir geta til að vera setja eins og gildum.
Svo hérna við höfum var x jafngildir virka
og það er fyrsta flokks gildi sem hægt er að fara framhjá
um sem rök.
Svo þú þarft ekki að lýsa function x
og bara setja x í því umfangi.
Þú geta fara framhjá verðmæti x hvar í gegn, þú veist,
sem rök í Önnur starfsemi
þar sem þú getur mát útflutning Davíð nefndi í hnút.
Svo er næsta lið
að fall er mótmæla í JavaScript.
Svo þú geta raunverulega setja eiginleika og gildi
um fall og bara skemmtun það eins og það er að mótmæla.
Svo þegar þú vinnur með jQuery, þú veist, að Dollar
og þá fara A val inn í það
og ákalla það sem fall.
En þá líka hafa dalur punktur Ajax.
Og það er ekki svoleiðis skynsamleg ef þú heldur
falls bara eins og að vera eitthvað sem þú getur borið
eða hringja.
En JavaScript leyfir þér að setja eignir á aðgerðir
eins rafhleðni við bara x punktur someProp
eins og ég bent á það.
Næsta lið sem við erum að fara inn í a lítill fleiri
í dýpt er sú staðreynd að aðgerðir er hægt að meðhöndla
sem bekkjum í JavaScript.
Svo er hugtakið þessarar nýju rekstraraðila
sem skapar nýtt eintak af fallið ásamt einhverskonar
af eins flokks-eins líkama sem kemur með það
og við erum að fara að fara inn í það svolítið meira,
það er kallað frumgerð.
Og það er það sem gerir JavaScript mjög einstakt í samanburði
við önnur tungumál sem eru flokkur byggir á,
JavaScript er frumútgáfa byggð.
Og þá bara á The botn þar,
fall getur bara verið kallað berum orðum eins og við erum vanir.
Svo það er ekkert nýtt.
Annar hlutur sem er einstakt er
að fylki eru reyndar mótmæla.
Þeir eru ekki eins og þeir eru í PHP
þar sem þú býrð bara nýtt array.
Þetta er í raun styttingin fyrir að segja nýja fylkisins.
Og fylki er í raun undirflokkur hlut.
Svo það er eitthvað öðruvísi og ég ætla að fara
í smá meira smáatriði á því.
Og kembiforrit getu
með JavaScript er í raun ósamþykkt eins langt og ég hef séð.
Þetta er screenshot af Króm Inspector
sem við erum að fara að að nota fyrir afganginn
með kynningu í dag.
Og að fá að þessu, þú bara fara að skrá verktaki verkfæraskúr
og opna Chrome Inspector eða þú geta réttur smellur
og smella á Show þátturinn I held að það sé á HTML síðu
eða ég held að það er stjórn valkostur J opnar þetta upp.
En við munum fara inn á þetta og þú geta raunverulega setja Rofstaðir
eins og þú ert að keyra í gegnum JavaScript kóða og raða
á meta hvað sveitarfélaga breytur eru, hvaða gildi
þetta er og það gerir það hátt auðveldara að kemba kóðann.
Og áttina - þetta er ekki bundnar við vafra-hlið númer
en þú getur raunverulega keyra dæmi
þessarar Króm Inspector fyrir þjónustu hlið númerið
sem er mjög sniðugt vegna þess að þú getur skref í gegnum línu fyrir línu
sem beiðni kemur inn í miðlara og sjá hvað er að gerast
og leika með breytum í vélinni hérna.
Svo eins og ég nefndi, JavaScript er frumgerð sem byggir á tungumáli
sem þýðir að það er sett af sjálfgefnum gildum sem eru eins konar
af falinn fyrir hvern valkost
í hlut punktur frumgerð eign.
Svo er það svoleiðis tæti af bara mismunandi gildi vanræksla
að þegar þú beita virka með nýju lykilorði,
þá eru settar með gjaldfalli sem virka
sem eru í boði á dæmi.
Svo að í raun er virkilega duglegur fyrir -
það er duglegur leið búa til mótmæla minni vitur
vegna þess að JavaScript Runtime hefur aðeins til að halda utan
á frumgerð hlutarins.
Það bendir konar til að
þegar þú cretae nýtt tilvik af klasa.
Og þú getur líka líkja arf Eins og þekkt er
í bekknum sem byggir á tungumál þar sem þú ert að raða
af eins og þetta liggur sem, liggur sem þú getur líkja
að í JavaScript gegnum það sem er kallað
frummynd keðju.
Og við munum sjá dæmi um það.
Svo ef þinn - jQuery tappi reyndar þeir mæla jQuery
höfunda til að nota dollara punktur fn til að bæta virkni
til jQuery bókasafn.
Og við erum í raun að fara að hoppa til - Svo á þessari síðu,
við höfum dollara - Ég með jQuery.
Og ef þú gerir dollara punktur í vélinni
sem ég nefndi uppeldi þú upp í gegnum stjórn vakt J
eða bara að fara að skoða, Verktaki, Developer Tools
og fara heimildum flipann.
[Inaudible Athugasemd]
Ó viss. Svo þegar ég byrjaði að slá í breytu,
það er sjálfvirkt lokið fyrir mig hvað er í boði þar.
Svo ég gafst upp á dollar og ég get sjá Ég held að Chrome hefur sumir
innbyggður-í dollara, dollara og dollara x.
Svo núna vil ég bara dollara og ég setti í punkt.
Og þá sýnir það mér allar eignir
sem eru í boði á jQuery mótmæla.
En ef ég vinn Dollar punktur frumgerð,
Ég sé nú allar aðferðir sem ég hef notað til að nota
þegar ég hef dollara, val og þá er ég keðja burt sem við,
þú veist, bæta bekknum eða bæta eða óskýr eða hverri sem er af þess háttar.
Þeir eru allir í raun á frumgerð
sem undir hetta jQuery skapar nýtt eintak af sjálfu sér
og það felur tegund af öllum Þessar upplýsingar frá þér.
Svo lið sem ég var gera aftur hérna
með virkni, þeir reyndar fela frumgerð frá þér
og bara alias það til dollara punktur fn.
Svo sem flestir í raun átta sig ekki
að það er frummynd Undir hetta That -
að þú getur tappa inn og bæta virkni
til hvers jQuery dæmis ef þú vilt.
Svo er "nýja" rekstraraðili virkilega svona erfitt
að skilja í fyrstu.
Þegar þú hringja í aðgerð með "nýju",
það er algjörlega öðruvísi leið til að hringja í virkni
eins og ef þú heitir bara það berum orðum.
Svo "nýja" rekstraraðili skapar hvað er kallað nýtt eintak
um hlut eða nýtt dæmi um, getur þú hugsa
af hlutnum sem bekknum.
Og þegar þetta gerist, gildi um það sem kann að vera kunnugt
með frá jQuery, þeir svoleiðis setja þetta
til hvað er þægilegt á þeim tíma.
Þeir setja yfirleitt það til Núverandi DOM hnút sem þú ert
á eins og þú ert að fara í gegnum eins hvor eða eitthvað svoleiðis.
Þeir - Þetta gildi er ætlast til að vera gildi fyrir tilstuðlan
sem þú bjóst við "nýja", sem felur í sér allt
á frumgerð keðja og allt af þeim aðferðum sem þú vilt finna
sem frumgerð eignir.
Svo það fer eftir því hvernig fall er kallað,
hvaða gildi þetta er.
Og það er mjög ruglingslegt ef þú ert nýr til JavaScript.
En hvert fall sem heitir hefur - hefur við það gildi.
Svo jafnvel ef þú ert ekki búin nýtt eintak af einhverju,
að þetta er gert ráð fyrir að vera alþjóðlegt.
Eða þú getur hringt í virka nota kalla aðferð
þar sem beita aðferð JavaScript.
Þú getur aðgerðina og tilgreina hvað þetta ætti að vera.
Svo er hægt að gera það virkt, sem er mjög öflugur
en einnig er hægt að gera hlutir sem geta verið villandi
og ruglingslegt að annar verktaki
ef þeir eru ekki að nota til þess.
Og jQuery, myndi ég halda því fram gerir það enn meira truflandi
með því að gera það auðvelt og setja það
við núverandi DOM hnút.
En sú einfalda regla að muna hvaða gildi þetta er
þegar þú ert að leita
á hlutverki símtal er það sem eftir er af punktinum.
Þannig að ef þú ert með hlut
og það er eitthvað punktur eitthvað er fallið
sem þú ætlar að hringja þá fyrsta gildi er það gildi
af er þessu.
Svo er hér númerið dæmi
þar sem ég er að búa til nýr hlutur bókstaflegri
sem er bara að mótmæla búin með hrokkið axlabönd
og ég ætla að setja nafn Bob
og þá hef ég sayName aðferð hér sem -
svo inni þessum sayName ef ég x punktur sayName,
Gildi þessa er jafnt til X. vegna þess að vinstri
punktsins er x. Þannig að ef Ég kalla það x punktur sayName,
það myndi segja Halló Bob.
Og svo annað dæmi
þar sem ég er í raun að framselja x punktur sayName, sem virka
þess að breyta Y, sem eins og ég nefndi
í JavaScript eru getur tengt aðgerðir
til breytur þegar þú vilt, það er mjög sveigjanlegt þannig,
en nú þegar ég kalla Y, það er glatað samhengi x.
Svo er þetta nú alþjóðlegt eða ef þú ert í ströngu háttur,
Ég held að það er null eða óskilgreindur.
En - Svo Y er ekki það sem þú ert von hér ef þú ert að leita
í X og þú ert að fara að hringja sayName,
þú ert að búast við þetta nafn er ætlað að vera Bob.
En ef þú dregið það burt að mótmæla og kölluðu það
af sjálfu sér, þetta er nú alþjóðlegt.
Og það er það sem ég var að minnast á þegar þú sérð dollara punktur þetta,
þú oft held ekki hvað er raunverulega að gerast.
En jQuery konar hefur þeirra eigin Lénbundið tungumál
til að fást við þetta og það er ekki það sem þú ert að nota
í JavaScript.
Og ég benda this út því það er mjög mikilvægt
fyrir að skrifa vel uppbyggð mótmæla stilla númer
í JavaScript til að raunverulega hafa góðan skilning og grípa
um hvernig þetta virkar og hvernig mótmæla líkan verk
og hvernig nýja rekstraraðila virkar.
Annars verður þú á endanum upp með jQuery spaghettí
þar sem allt er tegund af út um allt
og aðeins takast á við DOM.
Ef þú getur raunverulega Skrifa JavaScript
í skipulegri hætti, það gerir það mun auðveldara
til að vinna með, til að raða aðskildra áhyggjur
á að takast á við uppfæra DOM og takast
við raunverulegan rökfræði og númer.
Þannig að við skulum taka a líta á a nokkur dæmi í kringum það.
Svo ég hef nokkur dæmi hér.
Svo er þetta bara einfalt dæmi af því að nota JavaScript hlut
og bæta við nokkrum virka við það og síðan að búa konar
af eins og litlu forriti.
Svo það er mjög einfalt í raun.
Það eina sem það gerir er fyrst það hvetja nafn þitt.
Svo ég segi Tim og þá getur breytt þínu nafni Bob.
Og það er allt þetta umsókn gerir.
En það sem ég vil benda út er hvernig það gerir það.
Þannig að ég hef þetta nafn rafall hlut sem hefur byrjun aðferð
sem biður notanda fyrir nafn sitt
bara með að kalla þessa askForName
sem hér um það Tekur hvetja
ef nafn var ekki úthlutað þá biður það um það aftur
með því að kalla þetta askForName.
Og svo þegar það fær nafn, það kallar þessa uppfærslu nafn.
Svo þetta þá setur nafn notanda í h1 merkinu.
Og ef nafnið er ekki setja, kastar það villu.
[Inaudible Athugasemd]
Ó viss. Svo það setur nafn notanda í h1 tag
með því að hringja setDisplayName sem setur HTML
í JS nafn ílát og Ég forskeyta öllum HTML minn
með JS selectors bara vegna það er góð venja að fá
inn bara að gera það ekki svo ruglingslegt
þegar þú ert að nota selectors eins ID er eða flokka
fyrir bæði stíl og rökfræði
í JavaScript andlit endir umsókn.
Vegna þess að ef þú ert með mismunandi hópar fólks vinna
á kóða basa og þú hafa val þar
að hönnuður ákveður að breyta því it's -
lítur ekki vel út, svo þeir vilja að setja í nýja bekknum og taka
út þitt og þú ætlar að treysta á það fyrir JavaScript tilgangi,
þá númerið þitt brýtur.
Það er gott að forskeyti og raða
af eins Nafnrými nánast JavaScript-tengdar bekkjum
eða eiginleika með forskeyti JS.
Svo er þetta nokkuð einfalt og þú getur séð
í öllum þessum tilvikum er ég kalla aftur þetta í lokin.
Svo er þetta góð venja að fá inn,
að gefa þér það að Gildir skilagildi.
Í askForName Ég er ekki vegna þess að það er vit í
sem þú vilt fá nafnið aftur.
En hvað sem gerir þú að gera þá
ef þú kemur aftur þessa uppfærslu nafn, það er aftur á gildi
af setDisplayName sem er aftur gildi um þetta.
Og að leyfa þér að raða af keðju sem þú ert að nota
í jQuery því að koma aftur gildi þessarar hverju sinni.
Hér er átt við Núverandi hlutir
svo þú gætir kalla þetta punktur askForName punktur setDisplayName
og það myndi halda gildi þetta og leyfa þér
að hafa gott keðju þar.
Og síðan í - þannig að í Þetta annað dæmi.
[Hvíla]
Allt í lagi.
OK. Svo skulum við fara á undan og opna stjórnborðið
og fara heimildum hjá mér.
Við munum skjóta þetta út í raun og veru.
Svo í Chrome verktaki verkfæri sem ég nefndi,
það er þetta stykki á hægri og -
þú getur séð þetta Stop skilti þó sjálfgefið, það er svart.
En þegar þú mús yfir það, það segir "Ekki gera hlé á undantekningum.
Smelltu á hlé á allar undantekningar. "
Og þegar þú smellir á það aftur, snýr það blátt.
Og nú hvenær sem það er villa kastað
í JavaScript kóðanum, verður það hætta á þeim stað og leyfa þér
að meta hvað er að gerast.
Svo - og það er í raun gagnlegt Hugmyndin er að fara að benda á.
Og þá ef þú smellir aftur, snýr það fjólublátt
og þetta er yfirleitt hvað ég að halda það inn
Það aðeins brýtur kóðann þegar það er undantekning
sem hefur ekki verið veiddur.
Svo mikið af tímum í jQuery fyrir dæmis gera þeir reyna afla
að prófa hvort ekki vafra hefur einhverskonar hæfileiki
og halda áfram þaðan.
Þetta er aðeins þegar það er villa
sem ekki hefur verið lent í að reyna veiða.
Þannig að við skulum reyna að leggja nafn sem er auður.
Svo ég geti séð til þess að númerið er nú hætt
á updateName aðferð og ég get mús yfir nöfn
og sjá það er tómt til að eyða.
Það er það jafn autt.
Þannig að ef ekki nafn kasta nýtt villa og nú get ég stíga til baka
gegnum virka dálki og segja "OK,
Hvaðan kom þetta frá, "og sjá hvaða gildi viðskiptavinur er.
Svo það hefur askForName aðferð,
setDisplayName byrjun og updateName.
Og þetta er bara mjög gagnlegt vegur þú geta sjá hafa öll
breytur sem eru í boði í því umfangi sem og
sem lokun breytur, svo nokkuð sem er lokað
yfir eftir þessa aðgerð.
Og svo ég get séð það - hvaða gildi viðskiptavinur er
og hvaða gildi þetta er.
Þannig að þetta því við erum í jQuery er jafnt
við núverandi DOM frumefni.
En það er mjög gagnlegt fyrir kembiforrit kóðann
að brjóta á villum eins og þetta.
Annar lögun af the Króm Eftirlitsmaður er
að á hverjum tímapunkti sem þú getur smelltu á mismunandi línum
í röð og það mun brjóta á þeim stöðum
þar sem þú hefur stillt Rofstaðir þeir eru sem vísað er til eins og.
Svo ef ég smelli, er lína snýr blár.
Svo láta mig halda áfram framkvæmd hér, OK, það braut.
Og nú skulum setja nafn til Alice og högg sendir inn.
Svo nú get ég séð jafnvel áður en það fékk að benda
uppfæra allt, það er nú hætt hérna svo ég geti séð
að minn þetta nafn er Alice og þá get ég haldið áfram -
láta mig endurhlaða síðunni.
Allt í lagi, svo nú að það er byrja á byrjun aftur,
það hefur hætt við þetta lína og ég get séð
það nafn er nú óskilgreindur.
askForName er sem virka það er, svo það er líka oft gagnlegt
ef þú hafa aðgerðir sem eru koma frá mismunandi skrám
eða mismunandi stöðum í kóða, getur þú séð hvar það er,
og þá stökk til að það mun varpa ljósi á það.
Svo gott að komast í vana að nota kembiforrit verkfæri
sem eru ekki bara hugga punktur þig inn.
OK, þannig að við skulum taka líta á annað dæmi
sem gerir meiri notkun frumútgáfur sem ég hafði einu kennd við.
Þannig að í þessu dæmi,
við erum að skapa ný fall sem kallast CS
og þetta er eignfærður svo samningurinn staðall
JavaScript er ef aðgerð er ætlað að vera notuð
sem framkvæmdaaðila, öfugt
bara eðlilegt virka, nýta þér það.
Svo ég hef fjármagn CS og þetta tekur breytilega courseId
og courseTitle sem Ég stillt á þennan courseId,
þetta courseTitle í framkvæmdaaðila.
Og þá er ég setja einnig nemendum og fyrirlestrar sem tóm fylki.
Svo ástæðan fyrir því að þú -
OK, þannig að frumgerð eiginleikar voru síðan skilgreint
niður hér við - svo sniðmát er bara einföld undirstrik
sniðmát, undirstrikanir sniðmát vera leiðin sem þú getur -
svipað sniðmát að Davíð hefði nefnt
á miðlara, þú getur bara að skrifa handrit tag
sem er ekki JavaScript handrit en texti HTML
og hvað ég er að gera með jQuery er -
það þýðir ekki að halda þessum opin, já, svona.
Með jQuery, það er að fá að HTML verðmæti sem sniðmát
og þá stendur það í gegnum undirstrika bókasöfnum gagnsemi
Snið vél.
Svo skjöl fyrir það er niður hér
undir gagnsemi sniðmát
en í rauninni er hægt að lesa svolítið meira um það.
En það metur þessum streng og snýr það í aðgerð
sem við getum þá fara framhjá gögn inn og það kalla virk.
Næstu tvær aðferðir sem ég hef eru addStudent og addLecture.
Þetta bara bæta þeim við innri fylki sem ég hef sett
í framkvæmdaaðila og þá Render aðferð.
Svo, við skulum búa til nýja dæmi af CS heitir 164
sem hefur þetta námskeið númer 164 og titill.
Og þá CS50 sem hefur CS50 og Inngangur að CS1
og þá bæta við nokkrum fyrirlestra nemenda
og þá kalla CS50 bakið.
Og ef ég keyra kóða, svo Ég ætla að gera það með eval.
Þú aldrei raunverulega vilja til að nota á Eval, en ég er bara að raða
að taka alla JavaScript sem er í hér
og framkvæmd þess á flugu.
Það gerir í þessu Snið þessar nýju dæmi
af CS flokki sem hafa eiginleika, svo við höfum farið
gegnum og gert addLecture og addStudent til hvers.
Og eins og ég nefndi því ég er að skila þessu,
Ég get reyndar keðja þetta addLecture og addStudent símtöl
og það mun virka eins og heilbrigður.
The annar lögun í JavaScript sem er jafnvel meira gagni
á miðlara megin þar þú í raun á hverjum tíma
ef umsókn þín fær stærri veit ekki hvar þú ert
og það er erfiðara að setja þessi einstaklingur Viðmið
sem ég nefndi í Króm Inspector er
að nota aflúsara leitarorð.
Þannig að það er bara D-E-B-U-G-G-E-R.
Og þegar þú setur aflúsara leitarorð í kóðanum þínum
og þú hefur - þar sem við komum, tvær GS.
Þegar þú setur aflúsara leitarorð í kóðanum þínum
og þú ætlar að keyra aflúsara
svo sem Chrome Eftirlitsmaður hér
eða miðlara megin Chrome Skoðunarmaður segir það JavaScript
til að stöðva framkvæmd á þeirri línu af kóða og þá gerir þér
að stíga í gegnum the hvíla um framkvæmd númerum.
Svo ef ég smelli Setja kóðann hér, það er nú hætt
á þessum aflúsara línu og ég get sjá OK, hér er gildi CS50
og það er got námskeið Titill, ID sjálfsögðu,
það er got engin fyrirlestra, enga nemendur.
Og þá get ég stíga í gegnum allt addLecture,
Ég get séð að það er að ýta á þessum fyrirlestrum,
mús yfir það, "Hello World".
Ég get í raun í hugga gera þetta þannig að þetta er sett
að núverandi hlut sem þú ert inn
Í fyrirlestrinum er "Hello World".
Og halda stepping gegnum eins mikið og ég vil.
Ef ég vil ekki að stíga
í valda virka símtalinu ' Ég veit hvað það er að fara
að gera að fara í addLecture, það er á þennan hnapp hérna
sem segir "Skref á næstu virka símtalinu "og svo ég geti farið
til að benda þar sem ég er kannski spá um eitthvað.
Eins og til dæmis 164 bakið.
Svo á þessum tímapunkti, það er fara að vera innt af hendi.
Ég get séð þetta sniðmát er unnin sniðmát.
Ég get séð á þessum tímapunkti að ég að hafa tvær nemendum
og tveir fyrirlestrar.
Og þá er það frumgerð keðja sem ég var að vísa til.
Svo sjálfgefin að koma ásamt bara hlut
JavaScript almennt,
Það kemur með tveimur band gildi framkvæmdaaðila.
Og þá þau sem Ég hef bætt á mig
með addLecture, addStudent og þá eiginleika
sem eru einstök fyrir þetta dæmi af bekknum
eins og það var skírskotað með nýju lykilorði.
Þannig að við skulum gera bara einn fleiri dæmi um þetta
og þá munum við stíga á sum meira áhugavert
á miðlara megin.
Þannig að við skulum fara á undan og opna þetta síðasta dæmi, sem er -
við skulum sjá, hvar er kóðinn?
Ég veit ekki hvar þetta fór.
OK, ja, við gætum bara sleppa yfir þennan kóða þá í raun -
ó bíddu, ég held að ég missti stíll lak um númerið.
OK, þannig að við skulum gera þetta svolítið stærri.
Í þessu dæmi, ég er að sýna aðeins meira á stillingu
upp frumgerð keðju,
Svo að setja upp arf með JavaScript.
Svo í þessu tilfelli, höfum við vörulista sem er að fara
að væntanlega halda margar námskeið.
Og svo hefur verslun An addCourse aðferðum.
Svo það athugar hvort námskeið sem er samþykkt í er dæmi
auðvitað eins skírskotað með nýju lykilorði.
Þannig að ef þú reynir og senda
í eitthvað annað, það mun æpa á þig.
Render aðferð sem vilja láta hvert námskeið
því að setja saman sniðmátið hér að neðan.
Og við höfum námskeið sem aðgangur
í þessu tilfelli er undirstaða flokki fyrir einstökum deildum námskeið.
Og í stað þess að setja á hverjum
námskeiðs punktur frumgerð punktur aðferð
eða eign nota framlengja hjálpar í undirstrik bókasafni
að raða kalla lengja Þessi frumgerð með öllu
þessara eiginleika, sem er gagnlegur, svolítið auðveldara að lesa.
Og síðan niður hér að gera hvað er þekktur sem setja
upp frumgerð keðju.
Svo er þetta í raun lítið erfiður að fólk í fyrstu
og jafnvel enn hafa gert þetta um hríð, það er tegund af harður
að vefja höfðinu í kring.
En ekki láta það hræða þig.
Þannig að ég ætla að setja upp nýja -
alveg ný tegund mótmæla hér, CS.
Og í framkvæmdaaðila,
Ég er að segja námskeið beita þessari rök.
Svo rök er sérstakt gildi sem ég held að þú gætir kalla það
JavaScript er leitarorð sem hefur allt
af öllu sem er framhjá eftir er rök
sem virka eru í boði með rökin kalla,
með rökin leitarorð.
Svo eins og ég er að hringja með auðvitað punktur gilda,
þetta er núverandi samhengi sem CS er kallað.
Svo þegar ég ákalla hann með nýja það er - það er gildi CS.
Og ég er að segja kalla þetta Auðvitað aðferð hér.
Oh sorry - kalla þetta aðferð auðvitað hérna
en setja the gildi af þessu að vera hvað sem gildi
um er þetta hérna.
Svo gilda leitarorð leyfir þú til tegund af breyta stöðu
þetta sem er hvernig jQuery er heimilt að raða af rofi
út þetta á þig sem þú ert að fara í gegnum
og gera til DOM þætti í stað þess að jQuery hlut.
Svo nú er ég að fara að setja tímabundin aðgerð
sem mun grípa frumgerð af námskeiðinu.
Og svoleiðis sett það frumgerð hennar
og þá setja the frumgerð á CS virka mótmæla
til nýtt eintak af því.
Svo í rauninni er ég segja í staðinn -
ef ég gerði hérna cs punktur frumgerð jafngildir nýju námskeiði.
Þá væri það starf allt
í þessu framkvæmdaaðila virka,
sem ég vil ekki endilega vildi.
Svo er allt sem ég er að gera konar búa nánast
eins og staðgengill virka sem mun hafa námskeið frumgerð
á það og svoleiðis líkja frumgerð -
Námskeiðið en án þess að gera allt í framkvæmdaaðila
og setja það til the frumgerð.
Og þá er ég bara bæta þannig deild
í þessu tilfelli er tölva Vísindi fyrir CS mótmæla.
Og þá hef ég eins konar brú útgáfa að gera það.
Það virkar ekki í IE9.
Svo að hvers vegna ég vildi til að sýna einhverskonar hvernig -
hvað þetta er að gera undir hetta.
En þú getur sett það upp á sama hátt
þar hagkerfinu jafngildir virka Auðvitað eiga þessi rök
og síðan segja hagkerfinu punktur frumgerð jafngildir mótmæla punktur CreateCourse
punktur frumgerð.
Svo það skapar nýjan hlut sem er bara frumgerð
fyrir námskeiðið og þá stilla deild þar.
Svo nú skulum við fara bara sett aflúsara hér og smelltu á hlaupa.
Svona.
Svo CS164 getum við séð frumgerð keðja sem við höfum fengið
eiginleika sem voru setja í framkvæmdaaðila.
Svo gildi þessara sem sett voru og þá á frumgerð keðja
fyrir CS hlut sem það hafði deild Computer Science sett.
Og þá á undirliggjandi frumgerð keðja,
við höfum þá alla aðferðir og eiginleika
sem eru einstök fyrir Námskeiðið mótmæla.
Og þá höfum við grunn mótmæla.
Svo þessi tegund af a fljótur Dæmi um frumgerð keðju.
Og eins og þú geta sjá hér, þar eru tvö gildi á deild.
Svo er það deild tölvunarfræði
og þá deild ekki skráð sem ég sagði
sem sjálfgefið gildi hér.
Svo frumgerð keðja er í raun bara ein sér
tengilinn lista.
Og eins og það reynir að finna eign,
það verður að byrja á því efsta þrep gildi.
Svo hvaða 'the skilgreind í framkvæmdaaðila virka
og þá tegund af fara niður frumgerð keðja þaðan.
Svo vegna þess að það fann, svo -
ef hérna, segi ég CS50 punktur Department,
það segi tölvunarfræði.
En ef ég segi vágildið -
[Hvíla]
En ef ég segi hugvísindi jafngildir nýja stefnu
og þá segi ég hugvísindi punktur deild,
Ég sé deild ekki skráð vegna þess að það fór að fyrst -
Ég get líta á frumgerð keðju hér í raun.
Svo það fór fyrst að sjálfsögðu mótmæla og sá að það er ekkert
á frumgerð keðju á Þetta stig fyrir deild
eða fyrir Department gildi svo þá stökk hann á næsta stig,
Námskeiðið og útlit áfram þar og finnur hana.
Svo það bara svona eins og fer niður úr efstu niður
og það er svoleiðis eitthvað sem er einstakt
um JavaScript er að þú getur breytt einhverju
af þessum gildum á hverjum tíma.
Svo í framkvæmdaaðila eða í einstaklingur aðferð á hlut
ef ég vil setja þetta deild til að fá eitthvað nýtt,
eða ef ég vil jafnvel að setja eitthvað af þessum aðgerðum
sem eru nú þegar fyrir hendi
að eitthvað nýtt, Ég er frjáls til að gera það.
Svo núna hef ég CS50 punktur addLecture, lítur út eins og þessi.
Og ef ég vil að setja það að CS50 addLecture jafngildir bara
til að eyða virka.
Þá nú get ég séð það bara alveg breyst
sem þú ert ekki fær að gera annað tungumál
þar sem þú ert með strangari flokkur sem byggir á arfleifð
og allt er konar sett upp.
JavaScript er mjög, mjög sveigjanleg með tilliti til þess.
OK, við skulum hoppa aftur í glærum.
Þannig að ef td þú vildi alltaf eins og fall
að hafa tiltekinn þetta gildi sett fyrir það.
Þú getur hringt í virka punktur bindast
og setja það gildi ætti þetta að vera.
Þú getur hugsað það eins og -
"Ég er að reyna að hugsa um gott raunverulega heimi dæmi en ",
ef þú vilt að vernda kóðann þinn
gegn einhver hugsanlega kallar það með gildið
sem myndi ekki vera svona.
Eins og til dæmis AJAX svarhringingu eins umfram eða mistaka.
Þeir eru yfirleitt ekki kallað
með góð merkingartækni Verðmæti þessa.
Og þú ert eins og, "Allt í lagi, ég alltaf vil þetta til að vera gildi
námskeiðs mótmæla sem ég er að vinna með.
Eða útsýnið sem ég er vinna með í númerið mitt
sem sýnir þetta DOM hnút, getur þú sett -
þú getur binda samhengi við þetta og svo þegar það er kallað síðar
með jQuery og það er ekki með gott gildi þessa það mun standa
við hvað þú afmarkast það með.
Þá er það fall hringja voru þú getur tilgreint samhengi
og tilgreina hvaða breytu fjöldi viðfanga.
Og þá er það hlutverk gilda sem þú getur framhjá
í samhengi og þá annaðhvort fylki
eða rök hlutum sem Ég nefndi eins og þú sérð það.
Og rök í hvaða aðgerð sem þú kallar,
þú geta réttlátur tegund í orðið "rök"
og það verður allt rökin.
Það hefur a "lengd" eign
sem er hvernig má rök voru reyndar framhjá til að aðferðir
síðan í JavaScript þú getur flokkað kalla
með breytilegum tölur rök.
Það er gagnlegt fyrir að segja Ef þetta hefði eitt viðfang,
þá fylgja þennan kóða slóð.
Ef það hafði tvö, gætir þú vilja til að fylgja aðra leið.
Það gerir þér kleift að hafa raunverulega dynamic API fyrir aðferðum þínum.
Þú getur hugsað að með jQuery
eins og þegar þú ert dollara punktur á eða binda.
Og það svoleiðis er mismunandi hlutir
hvort þú setur einn rök eða tvö eða þrjú
eða hefja það með fall.
Það er að nota rök eign
og rök lengd í fullt af tilfellum
að hafa þetta galdur virkni gerast.
Hlutir sem þú getur ekki gert með rök er að nota það bara
sjálfgefið eins fjölda.
Svo þú getur sagt rök þrír og setja það í eitthvað
eins og þú gætir nota array framsal.
Þú getur notað - mikið af undirstrik aðferðir
fyrir annaðhvort söfnum eða fyrir að vinna með fylki,
þú geta fara framhjá í málflutningi og það verður að átta sig á
að það er rök mótmæla og raða
af að sjá um það fyrir þig.
En ef þú vilt nota Rökin sem eru liðin
gegnum fall sem fylki,
þú getur notað undirstrik punktur tvö fylki.
Einn af þeim fjölda af gagnsemi virka
sem byggja á að undirstrika.