>> V redu, tako je danes, Jaz bom govoril
O JavaScript in kako je razlikuje od drugih jezikih
da bi lahko bili je včasih PHP.
Tako je v zadnjem predavanju o Ponedeljek, smo se pogovarjali malo
o tem, kaj je podobna, kaj je poznajo med JavaScript
in PHP ali Python ali Ruby ali C ali drugih jezikih
da ste že pozna.
Vendar JavaScript je dejansko ima zelo unikaten sprejemanja
na objektni model, ki omogoča je nekako povsem drugačen
kot večini jezikov, ki boš obravnavo.
Torej, funkcije so nekako
od underappreciated Koncept v JavaScript.
Oni so tako močnejši od so v drugih jezikih
ker lahko in - zaradi enega razloga,
oni so sposobni biti nastaviti vrednosti.
Torej, tukaj imamo var x enako funkcijo
in to je prvi razred Vrednost, ki se lahko prenašajo
okoli kot argument.
Torej vam ni treba razglasi funkcijo x
in samo uporabo x v tem obsegu.
Lahko prenese vrednost x kjerkoli skozi, veste,
kot argument v drugo funkcijo
kjer lahko modul izvoz kot David navedeno v vozlišču.
Torej naslednja točka
da je funkcija ugovarja v JavaScript.
Torej si lahko dejansko nastaviti lastnosti kot vrednosti
na funkciji in samo zdravljenje je všeč, da je objekt.
Torej, ko delate z jQuery, saj veš, da dolar
in potem se boste peljali Selektor vanjo
in je sklicevati kot funkcija.
Potem pa tudi so dolarja dot AJAX.
In to ne nekako smisla, če menite,
v odvisnosti tako kot čemer nekaj, kar lahko uveljavljal
ali pokličite.
Vendar JavaScript vam omogoča, da nastavite lastnosti na funkcijah
kot statične lastnosti s samo x dot someProp
kot sem že tam.
Naslednja točka, ki smo šli v malo več
v globino, je dejstvo, da funkcije je mogoče zdraviti
kot razredi v JavaScript.
Tako da je koncept tega novega operaterja
ki ustvari nov primerek Funkcija skupaj z neke
podobnega razreda kot telo ki pride skupaj z njim
in smo šli vanjo malo več,
to se imenuje prototip.
In to je tisto, kar je naredi JavaScript zelo edinstven v primerjavi
drugih jezikih ki temeljijo razred,
JavaScript je prototip, ki temelji.
In potem samo na dnu pa,
funkcijo lahko preprosto imenuje očitno, kot smo navajeni.
Torej, to ni nič novega.
Še ena stvar, ki je edinstven je
da so nizi dejansko predmeti.
Oni ne marajo, da so v PHP
kjer si ustvarite nov niz.
To je pravzaprav okrajšava Za rekoč nov niz.
In matrika je dejansko podrazred predmeta.
Tako, da je nekaj drugačna in jaz bom šel
v malo bolj Podatek o tem.
In zmožnosti za razhroščevanje
z JavaScript res Neusklajena kolikor sem videl.
To je screenshot v Chrome inšpektorja
katerih bomo uporabljali za počitek
predstavitve danes.
In priti do tega, ki ste jo pravkar pojdi na datoteko orodja za razvijalce
in odprt Chrome inšpektor ali lahko z desnim klikom
in kliknite šov elementov I mislim, da je na strani HTML
ali mislim, da je ukaz Možnost J to odpira.
Bomo, ampak bomo šli v to in si dejansko lahko nastavite prekinitvene točke
kot ste tek skozi JavaScript kodo in razvrščanje
o oceniti, kaj je lokalna spremenljivke, katere vrednost
to je in je zato način lažje debug kode.
In Ne - to ni omejena je na strani brskalnika kodo
vendar pa lahko dejansko zaženete primerek
te Chrome inšpektorja Za vaše strani servisne kode
kar je res lepo, ker vam lahko korak skozi po vrsticah
kot izhaja zahteva v vašo strežnik in videli, kaj se dogaja
in se igral s spremenljivkami v konzolo tukaj.
Torej, kot sem že omenil, JavaScript je jezik, ki temelji na prototip
kar pomeni, da obstaja množica privzetih vrednosti, ki so nekako
od skrita za vsako funkcijo
V objektu piko Prototip lastnine.
Torej je nekako razpršitev Samo drugačne privzete vrednosti
da ko se sklicujejo delovati z novo ključno besedo,
tistih, ki so določeni s privzeto kot funkcije
da so na voljo na primer.
Tako da je dejansko res učinkovita za -
je to učinkovit način Izdelava objektov spomin pametno
ker JavaScript runtime ima samo slediti
prototipa predmeta.
To nekako nakazuje, da
ko cretae novo primerek razreda.
In lahko tudi posnemajo dediščine, kot je znano,
v jezikih, ki temelji na dodatni , kjer boste morali nekako
podobnega to razširja, da razširja, da lahko posnemajo
da v JavaScript skozi tisto, kar se imenuje
Prototip verige.
In bomo videli primere o tem.
Torej, če je vaša - jQuery plugins dejansko pa priporočam jQuery
Avtorji naj uporabljajo dolar pika fn dodati funkcionalnosti
v knjižnico jQuery.
In smo dejansko dogaja, da skok - Torej, na tej strani,
imamo dolar - Sem vključil jQuery.
In če vam dolar dot v konzoli
ki sem ga omenil prinaša ste skozi ukaz izmensko J
ali pa bo Poglej, Orodja za razvijalce, za razvijalce
in bo zavihku virov.
[Neslišno Opomba]
Oh, seveda. Torej, ko sem začel vnašati v spremenljivko,
to je auto-zaključena za mene kaj je na voljo tukaj.
Torej, sem tipkal na dolar in sem lahko glej Mislim Chrome ima nekaj
vgrajen dolarja, dolar in dolar x.
Torej, zdaj sem samo želim, dolar in sem dal v piko.
In potem se mi pokaže vse lastnosti
da so na voljo o jQuery predmeta.
Ampak, če jaz dolar dot prototip,
Sedaj vidim vse metode da sem se uporabljajo za uporabo
ko sem imel dolar, izbirnik in potem sem verižni off, da z njimi
Veš, dodajte razred ali dodajanje ali zameglitev ali katerokoli podobno.
To so vsi dejansko na prototipu
ki je pod pokrovom jQuery ustvari nov primerek sebi
in to nekako skriva vse ti podatki od tebe.
Torej točka, ki sem kar sem nazaj
z uporabo zanje dejansko skriti prototip od vas
in samo alias njej na dolar dot op.
Torej, večina ljudi dejansko ne zavedaš
da je prototip Pod pokrovom that -
da lahko pokrije in dodajanje dodatnih funkcionalnosti
za vsak primer jQuery Če ga želite.
Tako "novih" operator res nekako težko
razumeti na prvi.
Ko pokličete funkcijo z "novo",
to je povsem drugačen način kliče funkcijo
kot če si poklical ga očitno.
Torej "nova" upravljavec ustvari kar se imenuje nov primerek
predmeta ali novo primer, lahko si misliš
predmeta kot razred.
In ko se to zgodi, se vrednost od tega, ki morda ne poznajo
z od jQuery, so nekako nastaviti to
za vse, kar je priročno v času.
Jo običajno določi na Sedanji DOM vozlišča, ki ste
na, kot ste šli skozi podobno drug ali nekaj takega.
Oni - naj ta vrednost da je vrednost stopnje
ki ste jo ustvarili z "novo", ki vključuje vse
o prototipa verige in vse metode, ki bi jih najdete
kot prototip lastnosti.
Torej je odvisno od tega, kako Funkcija se imenuje,
kakšna vrednost je to.
In to je res zmedeno Če ste novi JavaScript.
Ampak vsako funkcijo, ki se imenuje ima - ima na tej vrednosti.
Torej, tudi če še niste ustvarili nov primer nečesa,
da je ta domneva globalen.
Ali pa lahko pokličete funkcijo metodi klica
kjer metode uporablja v JavaScript.
Lahko funkcijo in opredeliti, kaj naj bi to bilo.
Torej, lahko bi bilo dinamično, kar je res močna
ampak tudi vam omogoča, da Stvari, ki jih lahko zavajajoči
in zmedeno drugi razvijalci
če oni ne uporabljate dejstva.
In jQuery, jaz trdim je še bolj zmedeno
tako, da je primeren in nastavitev
na trenutno vozlišče DOM.
Ampak preprosto pravilo, da se spomnimo kakšna vrednost je to
ko iščete
na funkcionalno razpisa je Kaj je ostalo od piko.
Torej, če imate predmet
in to je nekaj, dot kar je funkcija
da kličeš potem Prva vrednost je tisto vrednost
za to.
Torej, tukaj je primer kode
kje sem ustvarjanju nov objekt literal
ki je samo objekt ustvarjena z zavitimi oklepaji
in sem ime nastavitev Boba
in potem imam sayName Postopek tukaj, ki -
tako znotraj tega sayName če mi x dot sayName,
Ta vrednost je enaka na X, ker levo
dot je x. Torej, če I call it x dot sayName,
bi rekli Hello Bob.
In potem še en primer
kje sem dejansko dodelitvijo x dot sayName, funkcija
spremenljive Y, ki je, kot sem že omenil
v JavaScript vas lahko določite funkcije
spremenljivke, kadarkoli hočeš, to je res prilagodljiv na ta način,
ampak zdaj, ko sem poklical Y, to je izgubila kontekst x.
Torej, to je zdaj globalna ali če ste v strogi pripravljenosti,
Verjamem, da je nična ali neopredeljene.
Ampak - Torej Y ni tisto, kar si pričakoval sem, če iščete
pri x in greš poklicati sayName,
ste pričakovali to ime naj bi bil Bob.
Toda, če vam je uspelo predmet in ga pozval
sam po sebi, to je zdaj globalna.
In to je tisto, kar sem omenil ko vidiš dolar dot to,
pogosto ne razmišljamo o kaj se v resnici dogaja.
Ampak jQuery je nekako njihova lastna domena specifične jezik
za reševanje tega in to ni tisto, kar ste navajeni
v JavaScript.
In jaz sem to opozori ker je res pomembno
Za pisanje dobro strukturiran objektno usmerjen koda
V JavaScript, da gre res za Dobro poznavanje in razumevanje
kako to deluje in kako objektni model dela
in kako deluje nov subjekt.
V nasprotnem primeru boste na koncu z jQuery špageti
kjer je vse nekako od vsepovsod
in samo ukvarjajo s DOM.
Če lahko dejansko pisati javascript
na bolj strukturiran način, to omogoča veliko lažje
delati, da razvrstite ločenih pomisleke
o, ki se ukvarjajo s posodabljanje DOM in obravnavanju
z dejansko logiko in kodo.
Tako da je lahko pogled na Nekaj ​​primerov okoli tega.
Tako da imam nekaj primerov tukaj.
Torej je to samo preprost primer z uporabo JavaScript predmeta
in dodal nekaj funkcij z njim in nato ustvarjanje neke
od kot miniaturni uporabe.
Tako da je pravzaprav zelo preprost.
Edina stvar, ki jo počne, je Sprva ga pozove svoje ime.
Tako bom rekel Tim in potem lahko spremenite svoje ime v Bob.
In to je vse to aplikacija ne.
Ampak, kaj bi rad izpostavil jasno je, kako to počne.
Torej imam to ime generator predmet, ki ima uvedbo metode
, ki uporabnika za svoje ime
ki ga pravkar kliče te askForName
ki tu spodaj je ne takojšnjemu
Če ime ni bila dodeljena potem pa spet prosi za njo
ga kliče te askForName.
In potem, ko je dobil ime, Zato poziva to ime posodabljanja.
Torej, ta pa določa uporabnikov ime v H1 tag.
In če ime ni nastavite, da vrže napako.
[Neslišno Opomba]
Oh, seveda. Tako da določa uporabnikov Ime v H1 tag
s pozivom setDisplayName ki določa HTML
v imenu posodo JS in Jaz sem kratico vse moje HTML
z JS selektorji samo zato, ker to je dobro navado priti
na samo, da bi to ni tako zmedeno
ko uporabljate selektorji, kot je ID ali razrede
tako za stil in logiko
V vašem JavaScript spredaj aplikacije end.
Ker če imate drugačno skupine ljudi, ki delajo
na bazo kodo in jo imajo selektorski tam
da je oblikovalec odločil spremeniti, ker To je -
ne izgleda super, zato želijo naj v novem razredu in se
iz tvoje in ti se zanašajo na njej za namene JavaScript,
potem zlomi kodo.
To je dobro, da se pred in razvrščanje
iz podobnega imenskem prostoru skoraj Povezane z JavaScript razredi
ali atributov z predpona JS.
Torej je to precej preprosta in si lahko ogledate
V vseh teh primerih sem dosegljiv kliče povratku na koncu.
Torej je to dobra navado priti v,
vam jo je veljavna vrednost donos.
V askForName nisem ker je to smiselno
, da bi dobili nazaj imena.
Toda kaj, ki omogoča da narediš potem
Če se vrnete to posodobitev ime, to je vračanje vrednosti
od setDisplayName ki je vrnitvijo to vrednost.
In to vam omogoča, da razvrstite verige, kot ste navajeni
v jQuery z vrnitvijo vrednost tega vsakič.
To se nanaša na Trenutne predmeti
tako da bi lahko to imenujemo pika askForName dot setDisplayName
in bi jo hrani Vrednost tega in vam omogočajo
da imajo lepo verigo tam.
In potem v - tako v ta drugi primer.
[Pause]
Vse je v redu.
OK. Torej, gremo naprej in odpreti konzolo
in pojdite na moj račun virov.
To bomo pop ven pravzaprav.
Torej, razvijalec Chrome orodja, ki sem jih omenil,
je ta kos na desno in -
lahko vidite to stop znak čeprav je privzeto, da je črn.
Toda, ko si z miško nad njo, pravi: "Ne premor o izjemah.
Kliknite na premor vse izjeme. "
In ko ga kliknete še enkrat, to obarva modro.
In zdaj vsakič, tam je napaka vrže
V vašem JavaScript kodo, se bo stop na mestu in vam omogočajo
oceniti, kaj se dogaja.
Torej - In to je res uporabno Koncept je približno poudariti.
In potem, če kliknete Ponovno se izkaže vijolična
in to je običajno kaj sem da ga prijavite
Se pokvari le kodo ko je izjema
, ki ni bila ujeta.
Torej, veliko krat v jQuery za instance, pa skušajo ulov
preveriti, ali brskalnika ali ne ima neke vrste sposobnosti
in nadaljujte od tam.
To je le pri tam je napaka
da ni bilo ujete v try ulova.
Torej, dajmo poskusiti in predložiti Ime, ki je prazen.
Torej vidim, da koda je zdaj ustavil
po metodi updateName in sem lahko z miško nad imeni
in videti je prazno prazno.
Tam je enaka prazno.
Torej, če ne naštejemo vrgel novo napakam in zdaj sem lahko korak nazaj
z delovanjem stolpec in rekel: "OK,
kjer je prišlo to, "in videli, kaj je vrednost odjemalca.
Torej ima askForName metodo,
setDisplayName začetek in updateName.
In to je samo res uporabno Tako si lahko ogledate še vse
spremenljivke, ki so na voljo v tem okviru tudi
kot spremenljivke zaprtje, tako vse, kar je zaprta
prevzel to funkcijo.
In tako sem lahko videl, da je - na vrednost odjemalca
in katere vrednost je to.
Torej je to, ker sva v jQuery enaka
na trenutni element DOM.
Ampak to je res uporabno za razhroščevanje kode
prodreti na napake, kot je ta.
Druga značilnost Chrome Inšpektor je
, ki na kateri koli točki si lahko kliknite na različnih progah
v vrsti in ga bomo odmor na mestih
kje ste nastavili prelomnih točk oni imenujejo.
Torej, če sem kliknite, vrstica obarva modro.
Torej, naj še naprej izvedba tukaj, v redu, da se je zlomila.
In zdaj pa si nastavite ime Alice in pritisnite Pošlji.
Torej, zdaj vidim celo preden je prišel do točke
posodabljanja vse, to je zdaj ustavili tukaj, da vidim
to je moje to ime Alice in potem sem lahko še naprej -
Naj osvežite stran.
Vse je v redu, tako da zdaj, ko je začenši spet na začetku,
se je ustavila pri tem linije in vidim
to ime je trenutno nedefinirano.
askForName je, ki je deloval je, da je pogosto koristen
če imate funkcije, ki so prihajajo iz različnih datotek
ali različnih krajih v kodo, lahko vidite, kje je,
nato pa skok na to, jo bo poudarila.
Tako dobra, da bi dobili v navado z uporabo orodja za iskanje napak
da niso le potolažiti dot dnevnik.
OK, tako da je lahko pogled na drugega primera
ki omogoča večjo uporabo prototipov, kot sem namignil, da.
Torej v tem primeru
smo ustvariti novo Funkcija se imenuje CS
in to je kapitalizirana tako standardnim dogovorom
v JavaScript je, če funkcija naj bi se uporabljajo
kot konstruktor, v nasprotju
samo normalno funkcijo, jo izkoristi.
Torej imam kapitalsko CS in to traja spremenljivo courseId
in courseTitle ki Sem se lotil tega courseId,
to courseTitle V konstruktorju.
In potem sem jih tudi študentom in predavanja so prazne mreže.
Torej razlog, da ste -
OK, tako da prototip lastnosti smo nato definirano
dol z - tako predlogo je le preprosto podčrtaj
predlogo, Predloga podčrtaj pa tako, da lahko -
podobnih predloge da je David omenjeno
na strežniku, lahko samo napisati scenarij oznako
ki ni JavaScript scenarij, ampak besedilo HTML
in kaj delam z jQuery je -
ne hranite odprt, ja, tam gremo.
S jQuery, to je pridobivanje HTML vrednost te predloge
in nato teče skozi poudariti uporabnost knjižnice
Predloga motorja.
Torej dokumentacija Za to je tukaj
v skladu s predlogi utility
ampak v bistvu si lahko preberete malo več o tem.
Vendar pa ocenjuje ta niz in ga spreminja v odvisnosti
ki jih lahko nato posredujejo podatke v in pokličite dinamično.
V naslednjih dveh metod, ki jih imam so addStudent in addLecture.
Ti jih le dodamo, da notranji nizi, ki sem jih iz
v projektant in potem postanejo metodo.
Torej, kaj je ustvariti novo primerek CS imenuje 164
ki ima ta predmet številko 164 in naziv.
In potem CS50, ki ima CS50 in intro za CS1
in nato dodamo nekaj predavanja študentom
in nato razpis CS50 render.
In če sem teči kodo, tako da Delam, da z Eval.
Nikoli si res želite uporabiti Eval, vendar sem nekako
sprejemati vse JavaScript, ki je tukaj
in jo izvrši na letenje.
S tem postane v to Predloga te nove primerke
CS razreda, ki imajo lastnosti, tako da smo šli
skozi in naredil addLecture in addStudent drug.
In kot sem že omenil ker Vračam to,
Lahko dejansko verižni ti addLecture in addStudent klici
in bo to delo prav tako dobro.
Druga značilnost v JavaScript , ki je še bolj uporabna
na strani strežnika, kjer res v danem trenutku
Če vaša aplikacija postane Večji Ne vem, kje ste
in to je težje določiti ti posamezni Mejne vrednosti
, ki sem jih omenil v Inšpektor Chrome
uporabljati razhroščevalnik ključno besedo.
Torej je to samo D-E-B-U-G-G-E-R.
In ko si dal iskalnik napak ključnih besed v kodi
in imate - Takole, dve GS.
Ko si dal razhroščevalnik ključnih besed v kodi
in delate iskalnik napak
kot krom Inšpektor tukaj
ali strežniški strani Chrome Inšpektor, pove JavaScript
ustaviti usmrtitev na tej liniji kode, nato pa vam omogoča,
korakom skozi preostali izvršitve kode.
Torej, če sem kliknite teči kodo tu, to je zdaj ustavil
Na tej debugger linijo in sem lahko glej OK, tukaj je vrednost CS50
in to je dobil tečaj Naslov, seveda ID,
to je dobil nobenih predavanj, Ni študentov.
In potem sem lahko korak skozi Celoten addLecture,
Vidim, da je potiskanje na teh predavanjih,
miško nad tem, "Hello World".
Sem lahko dejansko konzola To storite tako, je to nastavljeno
do trenutnega objekta da si noter
Predavanje je "Hello World".
In hraniti po korakih skozi toliko, kot si želim.
Če ne želim, da okrepijo
v vzroku klic funkcije ' Vem, kaj se dogaja
storiti gredo v addLecture, tam je ta gumb tu
, ki pravi: "Korak pred naslednjo klic funkcije, "in da bom lahko šel
do točke so bile, da sem morda sprašujete o nečem.
Kot je na primer 164 postane.
Torej, v tem trenutku, to je bodo opravljene.
Vidim te predloge je zbrati predloge.
Vidim, da na tej točki I morajo imeti dve študentom
in dve predavanji.
In potem je tu še prototip verige, da sem imel v mislih.
Torej privzeta tista, ki prihaja skupaj z enim predmetom
v JavaScript nasploh,
da prihaja z dvema niz Vrednost konstruktorja.
In potem tisti, ki Sem dodal na sebi
z addLecture, addStudent in nato lastnosti
ki so edinstveni za to primerek razreda
kot je sklicevala z novo ključno besedo.
Torej, kaj je naredil samo eno Več primer o tem
in potem bomo korak za nekatere bolj zanimivih stvari
na strani strežnika.
Torej, gremo naprej in odprite Ta zadnji primer, ki je -
Pa poglejmo, kje je koda?
Ne vem, če bi to šlo.
OK, dobro, smo lahko samo preskočite nad to kodo nato dejansko -
oh počakaj, mislim, da sem zamudil slogovna kodo.
OK, tako da naredimo to malo večji.
V tem primeru razkazujem malo več od nastavitev
do prototipa verigi,
Tako vzpostavitev dedovanje z JavaScript.
Torej v tem primeru smo Katalog, ki se dogaja
do predvidoma vzdrževati več tečajev.
In tako je katalog an metode addCourse.
Tako da preveri, ali tečaj , ki je minilo v je instanca
Seveda, kot je sklicevala z novo ključno besedo.
Torej, če poskusite in pošiljanje
v nekaj drugega, bo kričati na vas.
Postopek postanejo ki bo render vsakega od tečajev
z zbiranjem svojo predlogo spodaj.
In imamo tečaj katerih dostop
v tem primeru osnova razred za posameznega oddelka tečaji.
In namesto nastavitev vsakega
tečaja piko Metoda prototip dot
ali premoženje uporabo podaljša pomočnik v knjižnici podčrtaja
razvrstiti razpisa podaljša Ta prototip z vsemi
teh lastnosti, ki je uporabna, malo lažje brati.
In potem tukaj delal kar je znano kot nastavitev
do prototipa verigi.
Torej je to dejansko malo težavno za ljudi, ki na prvi
in še vedno to naredil za nekaj časa, to je nekako težko
zaviti svojo glavo okoli.
Ampak ne dovolite, da vas prestrašiti.
Torej sem ustanovitev novega -
popolnoma nov razred nasprotuje tukaj, CS.
In v konstruktorju,
Pravim tečaj Uporabi to trditev.
Torej argumenti, je posebna Vrednost Mislim, da bi ga lahko pokličete
v JavaScript, Ključna beseda, ki ima vse
od vsega, kar je opravili skupaj, je trditev
to funkcijo so na voljo z argumenti klic,
z argumenti ključno besedo.
Tako Kličem s potekom dot uporablja
to je aktualni kontekst , s katero je CS pozivu.
Torej, ko sem ga uveljavljal z novo to je - to je vrednost CS.
In jaz pravim to imenujemo Seveda metoda tukaj.
Oh, žal - to imenujemo Metoda Seveda tukaj
vendar so to vrednost da je ne glede na vrednost
za to tukaj.
Torej velja ključna beseda omogoča si nekako spremeniti stanje
to kar je, kako jQuery je dovoljeno razvrstiti stikala
od tega na vas, kot greste skozi
in da Dom elemente namesto jQuery predmeta.
Torej, zdaj grem, da nastavite začasna funkcija
ki bo pritegnila prototip seveda.
In ga nekako nastaviti njegove prototipa
in nato nastavite prototip na CS funkcijo objekta
na nov primer tega.
Torej, v bistvu sem namesto da bi rekel -
če sem tukaj naredil cs dot Prototip je enako novo smer.
Potem bi bilo kliče vse
v tej funkciji gradbenika,
ki ne bi nujno želel.
Torej, vse delam je nekako ustvarja skoraj
kot nadomestek za funkcijo, ki bodo imeli tečaji prototip
na njej in nekako posnemajo prototip -
Seveda pa ne gre vse, kar je v konstruktorju
in določi, da prototipu.
In potem sem samo dodal, da oddelek
V tem primeru je računalnik Znanost za CS predmeta.
In potem imam neke vrste most različica tem.
To ne deluje v IE9.
Tako da je, zakaj sem hotel za prikaz neke vrste kako -
kaj to počne pod pokrovom.
Vendar ga lahko nastavite pripravljen na enak način
kjer Econ enako funkcijo Seveda uporablja te argumente
in potem pravijo, Econ pika prototip enak cilj dot CreateCourse
dot prototip.
Torej je to ustvari nov predmet ki je le prototip
za golf in nato nastavite službo tam.
Torej, zdaj greva nastavite razhroščevalnik tukaj in kliknite na begu.
Takole.
Torej CS164 lahko vidimo Prototip veriga imamo
lastnosti, ki so bile določene v konstruktorju.
Torej vrednosti teh, ki so bili postavljeni in nato na prototipu veriga
za CS predmeta, ki ga je imel Oddelek za računalništvo nastavljene.
In nato na osnovno Prototip verige,
bomo potem morali vsi metode in lastnosti
da so edinstveni Seveda objekt.
In potem imamo podložna predmetov.
Tako da nekako hitro Primer prototipa verige.
In kot vidite tu, tam dve vrednosti na oddelku.
Tako da je oddelek računalništva
in nato oddelek ni na seznamu, ki sem rekel
kot privzeto vrednost tukaj.
Torej prototip veriga je pravzaprav samo enkrat
Seznam povezava.
In saj poskuša našli nepremičnino,
da bomo začeli na top vrednost ravni.
Torej, kaj je opredeljeno v Funkcija graditelj
in potem nekako dol Prototip verige od tam.
Zato, ker je ugotovilo, da -
če je tukaj, jaz pravim CS50 dot Department,
to bom rekel, računalništvo in informatiko.
Ampak, če rečem, var -
[Pause]
Ampak, če rečem, humanistike enako novo smer
in potem rečem humanistične dot oddelek,
Bom videla oddelek, ki niso navedeni saj je šlo za prvi -
Jaz lahko ogledate na prototipu verige so tu.
Torej je šlo najprej med nasprotovati in videl, da ni nič
na prototipu verigo na ta raven za oddelek
ali za oddelek vrednot tako potem skoči na naslednjo stopnjo,
Tečaj in izgled tam naprej in ga najde.
Torej je le nekako kot gre navzdol od zgoraj navzdol
in to je nekako nekaj, kar je edinstven
O JavaScript je da lahko spremenite katerokoli
teh vrednot v danem trenutku.
Torej, gradbenik ali Posamezne metode na predmet
če želim nastaviti to Oddelek za nekaj novega,
ali pa, če sem sploh želite nastaviti koli od teh funkcij
da že obstajajo
nekaj novega, Jaz sem prost, da to storim.
Torej, zdaj imam CS50 piko addLecture, izgleda tako.
In če želim, da jo nastavite na CS50 addLecture samo enaka
na praznem funkcijo.
Pa zdaj vidim, da je Pravkar popolnoma spremenilo
ki niste mogli storiti še jezikov
kjer boste morali strožje Razred, ki temelji na dediščino
in vse, kar je nekako postavitev.
JavaScript je zelo, zelo prilagodljiv glede tega.
OK, skoči nazaj v diapozitivih.
Torej, če na primer ste bi vedno radi funkcijo
da imajo zlasti ta vrednost za to.
Lahko pokličete funkcijo dot vezava
in nastavite na vrednost , bi moralo biti to.
Lahko pomislite, da je -
"Skušam misliti Dober realnem svetu primer, ampak "
Če želite zaščititi svojo kodo
proti nekomu potencialno kliče z vrednostjo
da ne bi bilo to.
Kot na primer AJAX povratni klic kot presežek ali napake.
Tisti, ki se običajno ne imenuje
z dobro semantični Vrednost tega.
In ti si rekel, "OK, sem vedno želeli, da je to vrednost
tečaja predmeta da delam.
Ali pogled, ki sem delo z mojem kodo
, ki predstavlja to DOM vozlišče, lahko nastavite -
lahko veže kontekst tega in potem, ko je pozval kasneje
z jQuery in nima dobra vrednost za to, da bom ostal
na tisto, kar je omejeno s.
Potem je tu še klic funkcije so lahko določite kontekst
in opredeliti spremenljivke število argumentov.
In potem je tu še funkcija Uporablja ki lahko prenese
v kontekstu in nato pa niz
ali argumenti ugovarja, da Omenil sem, kot vidite tam.
In argumenti v katerem koli Funkcija, ki jo imenujemo,
lahko vpišete v Beseda "argumenti"
in da bomo imeli vse argumenti.
To je "dolžina" premoženje
ki je, kako je bilo maja argumenti pravzaprav podal da metode
saj v JavaScript lahko razvrstite klica
s spremenljivim številke argumentov.
To je koristno za rek če bi to en argument,
sledite tega kodeksa pot.
Če bi imela dva, boste morda želijo slediti drug način.
To vam omogoča, da imate res dinamični API za vaše metode.
Si lahko zamislite da s jQuery
kot takrat, ko imate Dolar dot ali bind.
In to nekako ne različne stvari
o tem, ali si dal eno argument ali dva ali tri
ali začeti z delovanjem.
To se uporablja argumente nepremičnine
in argumenti dolžina v veliko primerih
, da je to čarobno Funkcionalnost zgodilo.
Stvari, ki jih ne more storiti z Argumenti se ga uporabi le
privzeto kot matriko.
Torej lahko rečemo, argumente tri in jo nastavite na nekaj
kot si lahko z uporabo naloga matrika.
Lahko uporabite - veliko metod, podčrtaj
za bodisi zbirk ali za delo z nizi,
lahko prenese v argumentih in da bomo spoznali,
da to je trditev Predmet in vrsta
od poskrbel za to za vas.
Toda, če želite uporabiti Argumenti, ki so opravili
s funkcijo kot matrično,
lahko uporabite podčrtaj dot dve paleto.
Eden od števila komunalnih funkcij
, ki se gradijo v podkrepili.