>> Labi, tāpēc šodien, Es esmu gatavojas runāt
par JavaScript un to, kā tas ir atšķiras no citām valodām
ka Jums varētu būt izmanto, lai, piemēram, PHP.
Tātad pēdējā lekciju par Pirmdien, mēs runājām mazliet
par to, kas ir līdzīgi, kas ir pazīstams starp JavaScript
un PHP vai Python vai Ruby C vai citās valodās
ka jūs jau esat iepazinušies ar.
Bet JavaScript tas faktiski ir patiešām unikāla pacelšanās
par objekta modeli, kas padara tā veida pavisam cits
nekā lielākajā daļā valodu, kas jūs gatavojas, lai risinātu ar.
Tā funkcijas ir sava
no nenovērtēts jēdziens JavaScript.
Viņi ir daudz vairāk spēcīgu, nekā tie ir citu valodu
, jo tie var in - viena iemesla dēļ,
viņi spēj būt uzstādīts kā vērtības.
Tāpēc šeit mēs esam VAR x ir vienāds ar funkciju
un tas ir pirmās klases vērtība, kas var tikt nodots
apmēram kā argumentu.
Tātad jums nav deklarēt funkciju x
un tikai izmantot x šajā darbības jomā.
Jūs varat iet vērtību x jebkur visā, jūs zināt,
kā argumentu stāšanās citu funkciju
kur jūs varat modulis eksporta kā David minēts mezglā.
Tātad nākamais jautājums ir
ka funkcija ir iebilst JavaScript.
Tātad jūs faktiski var iestatīt īpašības kā vērtības
par funkciju, un vienkārši ārstēt tas patīk, tas ir objekts.
Tātad, ja jūs strādājat ar jQuery, jūs zināt, ka dolārs
un tad jums iet selektora tajā
un izmantot to kā funkciju.
Bet tad jūs arī ir dolārs dot AJAX.
Un tas nav veida jēga, ja jūs domājat, ka
no funkciju tikai kā to kaut ko jūs varat izmantot
vai zvaniet.
Bet JavaScript ļauj noteikt īpašumus funkcijām
statiskie īpašības tikai ar x dot someProp
kā es norādīju, kas tur.
Nākamais punkts, kas mēs esam gatavojas iedziļināties nedaudz vairāk
dziļums ir fakts, ka funkcijas var ārstēt
kā klasēs JavaScript.
Tāpēc ir jēdziens Šī jaunā operatora
kas rada jaunu gadījumu funkcija kopā ar sava veida
, piemēram klases līdzīgā ķermeņa kas nāk kopā ar to
un mēs esam gatavojas iet tajā nedaudz vairāk,
to sauc prototips.
Un tas ir tas, kas ir markas JavaScript ir ļoti unikāla, salīdzinot
uz citām valodām kas ir class bāzes,
JavaScript ir prototips pamatā.
Un tad tikai pie apakšējā tur,
funkcija var vienkārši saukt skaidri, kā mēs esam pieraduši.
Tātad tas ir nekas jauns.
Vēl viena lieta, kas ir unikāls,
ka masīvi ir faktiski priekšmeti.
Viņi nav, piemēram, tie ir PHP
kur jūs vienkārši izveidot jaunu masīvs.
Tas ir faktiski saīsinājums sakot jaunu masīvu.
Un masīvs ir faktiski apakšklase objekta.
Tātad tas ir kaut kas atšķirīgi un es iešu
par nedaudz vairāk detalizēti par to.
Un atkļūdošanas iespējas
ar JavaScript ir patiešām nesaskaņotām cik es esmu redzējis.
Tas ir screenshot Chrome inspektora
kuru mēs gatavojamies var izmantot par pārējo
Prezentācijas šodien.
Un, lai saņemtu to, jūs vienkārši Iet uz File izstrādātāju rīki
un atveriet Chrome inspektors vai arī jūs varat tiesības klikšķi
un noklikšķiniet parādīt elementu I domāju, ka tas ir uz HTML lapu
vai arī es domāju, ka tas ir komandu variants J atver šo augšu.
Bet mēs iedziļināties šo un jūs faktiski var noteikt robežvērtības
kā jūs cauri JavaScript kodu un kārtot
un novērtēt to, kas vietējā mainīgie ir, kāda vērtība
tas ir, un tas padara to veids, kā vieglāk atkļūdošanas kodu.
Un nePazīst - tas nav spiesta pārlūkprogrammu puses kodu
bet jūs faktiski var palaist instancē
Šīs Chrome Inspector par pakalpojumu puses kodu
kas ir ļoti veikls, jo jūs var soli pa pozīcijai
kā pieprasījums nonāk jūsu serveri un redzēt, kas notiek
un spēlēt ar mainīgajiem konsole leju šeit.
Tā kā jau minēju, JavaScript ir prototips balstīta valoda
, kas nozīmē, ka komplekts standartvērtību, kas ir sava veida
slēpto par katru funkciju
objektā dot prototips īpašums.
Tātad, tas ir sava veida hash tikai citas sākotnējās vērtības
ka tad, kad jūs izmantot darbojas ar jaunu atslēgvārdu,
tos nosaka default kā funkcijas
, kas ir pieejami uz instance.
Tātad, kas faktiski ir patiešām efektīva -
tas ir efektīvs veids, kā veidojot objektus atmiņu gudrs
jo JavaScript runtime ir sekot tikai
prototipa objekta.
Tā veida norāda, ka
kad jūs cretae jauns gadījums klasē.
Un jūs varat arī imitēt mantojuma kā zināms
klašu bāzes valodu kur jums ir sava
, piemēram tas attiecas, ka, paplašina, ka jūs varat imitēt
ka JavaScript caur to, ko sauc
prototips ķēdes.
Un mēs redzēsim piemērus par to.
Tātad, ja jūsu - jQuery plugins patiesībā viņi iesaka jQuery
autori, lai izmantotu dolāru dot fn pievienot funkcionalitāti
ar jQuery bibliotēkā.
Un mēs esam patiešām gatavojas lēkt - Tātad, šajā lapā,
mums ir dolārs - Es iekļauts jQuery.
Un, ja jūs dolāru dot konsole
kas es teicu celt Jūs pat caur komandu maiņu J
vai arī tikai gatavojas, lai apskatītu, Attīstītājs, izstrādātāju rīki
un dodas uz cilni avoti.
[Nedzirdams Piezīme]
Nu, protams. Tātad, kad es sāku rakstīt mainīgo,
tas ir auto-aizpilda par mani to, kas ir pieejams tur.
Tāpēc es drukāti dolāru, un es varu redzat, es domāju, ka Chrome ir daži
iebūvēts dolāru, dolāru un dolāru x.
Tāpēc tagad es tikai gribu dolāru, un man ar punktu.
Un tad tas liecina man visas īpašības
, kas ir pieejami uz jQuery objektu.
Bet ja es daru dolāru dot prototips,
Es tagad redzēt visas metodes ka es esmu, ko izmanto, lai, izmantojot
kad man ir dolārs, selektoru un tad es ķēdi off, ka ar,
jūs zināt, pievienot klasi vai pievienot vai izplūšanu vai kādu tamlīdzīgi.
Tie visi ir reāli par prototipu
kas ar kapuci jQuery izveido jaunu gadījumu sevi
un tā veida slēpj visu Šo informāciju no jums.
Tātad jautājums, kas man bija padarot atpakaļ pār šeit
ar funkciju, tie faktiski slēpt prototips no jums
un tikai alias to dolāra dot fn.
Tātad, lielākā daļa cilvēku patiešām neapzinās
, kas ir prototips zem pārsega That -
ka jūs iespējams savlaicīgi un pievienot papildus funkcionalitāti
katram jQuery gadījumā ja vēlaties.
Tā "jaunā" operators ir tiešām veida grūti
saprast sākumā.
Kad jūs zvanu funkciju ar "jauno",
tas ir pavisam cits veids, zvanot funkciju
kā tad, ja jūs vienkārši sauc tas skaidri.
Tā "jaunā" operators rada ko sauc jauna instance
Objekta vai jauns gadījums, jūs varat iedomāties
Objekta kā klasē.
Un, kad tas notiek, vērtību tas, kas var būt pazīstami
ar no jQuery, viņi veida noteikt šo
lai kāds ir ērti laikā.
Tie parasti ir noteikts to Pašreizējā DOM mezglu, kas tu esi
gada, kā jūs iet cauri, piemēram, katru vai kaut kas tamlīdzīgs.
Viņi - Šī vērtība ir paredzēts būt vērtība instances
ka jūs izveidojāt ar "jaunu", kas ietver visu
par prototipu ķēdi un visu no metodēm, kas jūs atradīsiet
kā prototipu īpašības.
Tāpēc tas ir atkarīgs no funkciju sauc,
kāda vērtība, tā ir.
Un tas tiešām ir mulsinoši Ja jūs esat jauns, lai JavaScript.
Bet visas funkcijas, kas ir sauc ir - ir šajā vērtībā.
Tātad, pat tad, ja neesat izveidojis jauna gadījums kaut ko,
ka tas ir pieņemts par globālu.
Vai arī varat zvanīt funkciju Izmantojot zvanu metodi
kur piemērota metode JavaScript.
Varat funkciju un precizē, kāda tā būtu.
Tātad jūs varat padarīt to dinamisku, kas ir ļoti spēcīgs
bet arī ļauj jums darīt lietas, kas var būt maldinoša
un mulsinoši citi izstrādātāji
ja viņi nevar izmantot ar to.
Un jQuery, es teiktu padara vēl neskaidras
padarot to ērtāk un nosakot to
pašreizējam DOM mezglu.
Bet vienkāršs noteikums, kas jāatceras kāda vērtība tas
ja jūs meklējat
pie funkcionālā zvans tiek kas palicis pāri no dot.
Tātad, ja jums ir objekts
un tas ir kaut kas dot kaut kas ir funkcija
ka jūs aicināt, tad pirmā vērtība ir kāda vērtība,
tas ir.
Tātad, šeit ir kods, piemēram,
kur es esmu veidojot jaunu objektu burtisks
kas ir tikai objekts izveidots ar cirtaini lencēm
un es esmu nosakot vārdu Bobam
un tad man ir sayName metode šeit, kas -
tik iekšā šajā sayName ja es x dot sayName,
vērtība tas ir vienāds X jo kreiso
un dot ir x. Tātad, ja Es aicinu to x dot sayName,
tā teiktu Sveiki Bob.
Un tad vēl viens piemērs
kur es esmu faktiski piešķirot x dot sayName, funkcija
ar mainīgo Y, kas, kā jau es teicu
JavaScript jums var piešķirt funkcijas
mainīgajiem, kad jūs vēlaties, tas ir ļoti elastīgs, ka veids,
bet tagad, kad es zvanu Y, tas ir zaudējis kontekstu x.
Tāpēc tagad tas ir globāls, vai ja tu esi stingri režīmā
Es uzskatu, ka tas ir null vai undefined.
Bet - So Y nav tas, ko jūs esat gaida šeit, ja jūs meklējat
pret x un jūs gatavojas zvanīt sayName,
jūs gaida šo vārdu vajadzētu būt Bob.
Bet, ja jūs velk to off objektu un to sauca
pats par sevi, tas tagad ir globāla.
Un tas, ko es pieminēt ja redzat dolāru dot to,
jūs bieži nedomā par to, kas patiesībā notiek.
Bet jQuery veida ir savas pašu domēna specifiskas valodas
nodarbojas ar šo un tas nav tas, ko jūs esat pieraduši
ar JavaScript.
Un es norādīt šo out jo tas ir ļoti svarīgi,
rakstīšanai labi strukturēts objektorientētā kodu
ar JavaScript, lai tiešām būtu laba izpratne un izpratni
par to, kā tas darbojas un kā objekta modeli darbi
un kā jaunais uzņēmējs darbojas.
Pretējā gadījumā jūs galu ar jQuery spageti
kur viss ir sava pārņem visas vietas
un tikai nodarbojas ar DOM.
Ja jūs faktiski var rakstīt Javascript
, kas ir vairāk strukturētā veidā, tas padara to daudz vieglāk
strādāt, lai kārtotu Atsevišķu bažas
no kas nodarbojas ar atjauninot DOM un risinot
ar faktisko loģiku un kodu.
Tātad, pieņemsim to apskatīt daži piemēri ap to.
Tāpēc man ir daži piemēri šeit.
Tāpēc tas ir tikai vienkāršs piemērs izmantot JavaScript objektu
un pievienojot dažas funkcijas uz to un pēc tam izveidojot sava veida
no kā miniatūra pieteikumu.
Tātad, tas ir ļoti vienkāršs faktiski.
Vienīgais, ka tas ir sākumā tas liek savu vārdu.
Tāpēc es saku Tim, un tad jūs var mainīt savu nosaukumu uz Bob.
Un tas ir tas viss pieteikumā nav.
Bet tas, ko es gribētu uzsvērt kas ir, kā tas tiek darīts.
Tāpēc man ir šis vārds ģenerators objekts, kas ir sākuma metodi
kas prasa lietotājam savu vārdu
, tikai aicinot šo askForName
kas noteikti šeit ir nav uzvedne
ja vārds netika piešķirts tad tas prasa to vēlreiz
zvanot šo askForName.
Un tad, kad tas iegūst nosaukumu, tas prasa šo atjauninājumu nosaukumu.
Tāpēc šo, tad noteikti lietotāja nosaukums h1 tag.
Un, ja nosaukums nav uzstādīts, tas met kļūdu.
[Nedzirdams Piezīme]
Nu, protams. Tāpēc tā nosaka lietotāja vārds h1 tag
zvanot setDisplayName kas nosaka HTML
in JS vārds konteinera un Es esmu apzīmētāju visu manu HTML
ar JS selektori tikai tāpēc, ka tas ir labs ieradums, lai iegūtu
vērā tikai, lai tas nav tik mulsinoši
ja jūs izmantojat selektoru, piemēram, SD vai klašu
gan stilu un loģiku
Jūsu JavaScript priekšējie end pieteikumus.
Jo, ja jums ir atšķirīgi cilvēku grupas, kas strādā
uz koda bāzi, un jūs ir selektoru tur
ka dizainers nolemj mainīt, jo it's -
neizskatās liels, tāpēc viņi vēlas lai jaunā klasē un veikt
kas jums un jūs paļauties par to, lai JavaScript mērķiem,
tad jūsu kodu pārtraukumiem.
Tas ir labi, lai prefiksu un kārtot
no kā namespace gandrīz JavaScript saistītās nodarbības
vai atribūti ar priedēklis JS.
Tātad tas ir diezgan vienkāršs un jūs varat redzēt
Visos šajos gadījumos es esmu zvanot atgriezties šajā beigās.
Tātad šis ir labs ieradums, lai nokļūt,
lai dotu jums tā ir derīga atgriešanās vērtību.
In askForName es neesmu tāpēc, ka ir jēga
ka jūs varētu saņemt vārdu atpakaļ.
Bet to, kas ļauj jums to darīt, tad
ja jūs atpakaļ šo atjauninājumu nosaukums, tas ir atgriešanās vērtību
no setDisplayName kas atgriešanās vērtību to.
Un tas ļauj kārtot ķēdes, kā jūs esat pieraduši
ar jQuery, nosūtot vērtība šī katru reizi.
Tas attiecas uz Pašreizējie objekti
lai jūs varētu nosaukt šo dot askForName dot setDisplayName
un tas saglabā Šīs vērtības un ļauj jums
ir jauka ķēdi tur.
Un tad - tāpēc Otrs piemērs.
[Pauze]
Labi.
OK. Tāpēc iesim uz priekšu un atvērt konsoli
un iet uz manu tab avoti.
Mēs pop šo out faktiski.
Tātad Chrome attīstītājs instrumenti, kas es teicu,
ir šis gabals par labo un -
Jūs varat redzēt šo pieturas zīmi kaut gan pēc noklusējuma, tas ir melns.
Bet, ja tu peli pār to, ka saka: "Vai nav pauzes uz izņēmumiem.
Noklikšķiniet uz pauzes par visi izņēmumi. "
Un, kad jūs noklikšķiniet uz tā atkal, tas kļūst zils.
Un tagad jebkurā laikā, ka tur ir kļūda izmet
jūsu JavaScript kodu, tas būs pieturas vietā un ļauj jums
novērtēt to, kas notiek.
Tātad - un tas ir patiešām noderīga jēdziens ir aptuveni norādīt.
Un tad, ja jūs noklikšķiniet atkal, tas kļūst violets
un tas ir parasti ko es glabāt to iekšā
Tas tikai pārtraukumiem kodu ja ir izņēmums
kas nav nozvejotas.
Tik daudz reizes jQuery par Piemēram, tie mēģinās nozveju
lai pārbaudītu, vai pārlūkprogramma ir kaut kādas iespējas veida
un turpināt no turienes.
Tas ir tikai tad, ja tur ir kļūda
, kas nav nozvejotas mēģināt nozvejas.
Tāpēc pamēģināsim un iesniedz vārds, kas ir tukšs.
Tātad, es redzu, ka kods tagad ir pārtraukta
pie updateName metodi un es varu peli nosaukumiem
un redzēt, tas ir tukšs, to tukšu.
Tur tas ir vienāds ar tukšu.
Tātad, ja nav vārdu mest jaunu kļūda, un tagad es varu soli atpakaļ
caur funkciju ailē un saka: "Labi,
no kurienes tas nāk no "un redzēt, kāda vērtība klientam ir.
Tāpēc tas ir askForName metodi,
setDisplayName sākums un updateName.
Un tas ir tikai patiešām noderīga veids, kā jūs varat redzēt, ir visas
mainīgie, kas ir pieejami šajā darbības jomā, kā arī
kā noslēguma mainīgajiem, lai kaut ko, kas ir slēgts
pārņem šo funkciju.
Un tā es redzu, ka - kāda vērtība klientam ir
un kāda vērtība, tā ir.
Tāpēc šis "jo mēs esam jQuery ir vienāds
pašreizējam DOM elementa.
Bet tas ir patiešām noderīga atkļūdošanas kodu
plīšanu kļūdas, piemēram, šis.
Vēl viena iezīme Chrome inspektors ir
ka jebkurā brīdī jūs varat noklikšķiniet uz dažādām līnijām
rindā, un tas būs pārtraukumu vietās
kur jums ir noteikti kontrolpunkti viņi sauc par.
Tātad, ja es noklikšķiniet, līnija kļūst zils.
Tātad, ļaujiet man turpināt izpilde šeit, Labi, ka lauza.
Un tagad pieņemsim noteikt nosaukumu Alise un hit Iesniegt.
Tāpēc tagad es redzu vēl pirms tā got uz punktu
atjaunināšanas viss, tas ir tagad apstājās šeit, lai es varētu redzēt
ka mans šis vārds ir Alise un tad es varētu turpināt -
ļaujiet man pārlādēt lapu.
Labi, tāpēc tagad, ka tā ir sākot sākumā atkal,
tā ir apstājusies šajā līniju, un es redzu
šis vārds ir pašlaik undefined.
askForName ir, kas darbojas to ir tā, ka ir arī bieži vien ir noderīgas
Ja jums ir funkcijas, kas ir kas nāk no dažādiem failiem
vai dažādās vietās kods, jūs varat redzēt, kur tas ir,
un pēc tam pāriet uz, ka, tas būs izcelt to.
Tik labs, lai saņemtu paradums izmantot atkļūdošanas rīkiem
tas ir ne tikai konsole dot žurnālu.
Labi, tāpēc pieņemsim apskatīt otrajam piemēram
kas ļauj vairāk izmantot prototipi, jo man bija pieminēja.
Tātad, šajā piemērā,
mēs esam radot jaunu funkcija sauc CS
un tas ir kapitalizēti tāpēc konvencija standarts
JavaScript ir, ja funkcija ir paredzēts izmantot
kā konstruktors, nevis
tikai normāla funkcijas, jums kapitalizēt to.
Tāpēc man ir kapitāla CS un tas notiek mainīga courseId
un courseTitle kas Es noteikti uz šo courseId,
Tas courseTitle konstruktors.
Un tad es arī noteikti skolēniem un lekcijas, tukšas bloki.
Tā iemesla dēļ, ka jūs -
Labi, tā prototips īpašības pēc tam tika noteikts
noteikti šeit ar - lai veidni ir tikai vienkāršs pasvītrojums
veidni, pasvītrojums veidne ir tā, ka jūs varat -
līdzīgi veidnes ka Dāvids bija minēts
uz servera, jūs varat vienkārši uzrakstīt skriptu tag
kas nav JavaScript skripts bet teksta HTML
un ko es daru ar jQuery ir -
tas nav turēt tos atvērts, jā, tur mēs ejam.
Ar jQuery, tas kļūst HTML vērtība šo veidni
un pēc tam darbojas caur uzsvērt komunālo bibliotēkas
veidni motora.
Tā dokumentācija par to ir šeit lejā
saskaņā ar lietderības veidni
bet būtībā jūs varat izlasīt mazliet vairāk par to.
Bet tā izvērtē šo virkni un pārvērš to funkciju
kas tad mēs varam nodot datus ievešanu un tā zvanu dinamiski.
Nākamās divas metodes man ir ir addStudent un addLecture.
Šie vienkārši pievienot tos iekšējie bloki, kas es esmu, kas
konstruktors un tad apmetuma metodi.
Tātad, pieņemsim izveidot jaunu gadījums CS sauc 164
kas ir šo kursu numuru 164 un nosaukums.
Un tad CS50, kas ir CS50 un intro uz CS1
un pēc tam pievienot dažas lekcijas studentiem
un tad zvana CS50 apmetumu.
Un, ja es palaist kodu, lai Es esmu dara, ka ar Eval.
Jūs nekad vēlaties izmantot Eval, bet es esmu tikai sava
veikt visu JavaScript, kas ir šeit
un izpildot to uz lidot.
Tas padara par šo veidni šos jaunos gadījumos
CS klasi, kas ir īpašības, tāpēc mēs esam aizgājuši
cauri un darīts addLecture un addStudent katram.
Un, kā jau es teicu jo es esmu atpakaļ to,
Es patiesībā var ķēdi šos addLecture un addStudent zvani
un tas būs strādāt tikpat labi.
Otra iespēja JavaScript tas ir pat vairāk noderīgs
servera pusē, kur jūs tiešām jebkurā brīdī
Ja jūsu pieteikums izpaužas lielāks nezinu, kur jūs esat
un tas ir grūtāk, lai uzstādītu individuālie kontrolpunkti
ka es minēts Chrome inspektors ir
izmantot atkļūdotājs atslēgvārdu.
Tāpēc tas ir tikai D-E-B-U-G-G-E-R.
Un, kad jūs nodot atkļūdotājs atslēgvārds jūsu kodu
un jums ir - tur mēs ejam, divas GS.
Kad jūs nodot atkļūdotājs atslēgvārds jūsu kodu
un jūs darbojas atkļūdotājs
piemēram, Chrome Inspektors šeit
vai servera pusē Chrome Inspektors, tas stāsta JavaScript
lai apturētu izpildi par šo līniju kodu, un pēc tam tas ļauj jums
soli pa pārējām gada izpildes kodeksu.
Tātad, ja es noklikšķiniet uz palaist kodu šeit, tas ir tagad apstāšanās
Šajā atkļūdotājs līnijā, un es varu skat. OK, šeit ir vērtība CS50
un tas ir got kursu virsraksts, protams ID,
tas ir got nav lekcijas, studentu.
Un tad es varu soli pa viss addLecture,
Es redzu, tas ir stumšanas uz šīm lekcijām,
peli, ka, "Hello World".
Es varu faktiski konsole darīt, lai tas ir noteikts
pašreizējo objektu ka tu esi iekšā
Šī lekcija ir "Hello World".
Un saglabāt pastiprināšanu pa cik es gribu.
Ja es nevēlos, lai soli
par funkciju zvanu "cēlonis Es zinu, ko tas notiek
darīt nonākšana addLecture, , ka tas ir poga tieši šeit
kas saka: "Soli pa nākamais funkcija zvans ", un tā es varētu iet
līdz vietai, tika es esmu varbūt domājām par kaut ko.
Tāpat kā, piemēram, 164 apmetumu.
Tātad šajā brīdī, tas ir būs padarīts.
Es redzu šo veidni ir apkopota veidne.
Es redzu šo I punktā jābūt diviem studentiem
un divas lekcijas.
Un tad tur ir prototips ķēdi, kas man bija, kas attiecas uz.
Tātad noklusējuma viens, kas nāk kopā tikai ar objektu
JavaScript kopumā,
tas nāk ar divām virknes vērtība konstruktors.
, Un tad tie, kas Esmu pievienots sevi
ar addLecture, addStudent un tad īpašības
, kas ir unikāla ar to gadījums klases
jo tas tika izvirzīts ar jauno atslēgvārdu.
Tāpēc pieņemsim darīt tikai vienu vairāk piemēru par šo
un tad mums būs solis uz dažām vairāk interesantas lietas
servera pusē.
Tāpēc iesim uz priekšu un atvērt šis pēdējais piemērs, kas ir -
pieņemsim redzēt, kur ir kods?
Es nezinu, kur tas gāja.
Labi, labi, mēs varētu vienkārši izlaist pār šo kodu tad faktiski -
oh tur, es domāju, ka es nokavēju stila lapas par kodu.
Labi, tāpēc pieņemsim Tas nedaudz lielāks.
Šajā piemērā, es esmu parādot nedaudz vairāk par iestatījumu
līdz prototipa ķēdē,
tā izveidojot mantojumu ar JavaScript.
Tātad, šajā gadījumā, mēs katalogu, kas notiek
lai, iespējams saglabāt vairāki kursi.
Un tā katalogs ir AN addCourse metodes.
Tātad, tā pārbauda, ​​vai kurss , kas ir pieņemts, ir gadījums
Protams, kā izmantot ar jauno atslēgvārdu.
Tātad, ja jūs mēģināt un sūtīt
ar kaut ko citu, tas būs kliegt pie jums.
Padarīt metode, kas būs sniedz viena no kursiem
, apkopojot savu veidni zemāk.
Un mums ir kursu kuriem piekļuve
Šajā gadījumā bāzes klase individuālās nodaļa kursi.
Un tā vietā nosakot katras
Kursa dot prototips dot metode
vai īpašumu, izmantojot paplašinātu palīgs pasvītrojuma bibliotēkā
kārtot ar aicinājumu pagarināt Šis prototips ar visiem
no šīm īpašībām, kas ir noderīgi, mazliet vieglāk lasīt.
Un pēc tam uz leju šeit darām to, kas ir pazīstams kā nosakot
līdz prototipa ķēdē.
Tātad tas ir patiešām maz grūts cilvēkiem sākumā
un vēl joprojām ir izdarīts awhile, tas ir sava veida grūti
wrap galvu apkārt.
Bet neļaujiet, ka skandāla jums.
Tāpēc es esmu izveidot jaunu -
pilnīgi jauna klase iebilst šeit, CS.
Un konstruktors,
Es saku kursu attiecībā uz šo argumentu.
Tātad argumenti ir īpašs vērtība, es domāju, jūs varētu to sauc
JavaScript, atslēgvārds, kas ir visas
par visu, kas ir pagājis gar ir argumenti
ka funkcija ir pieejama ar argumenti zvanu,
ar argumentiem atslēgvārdu.
Tā kā es esmu aicinot ar kursu dot piemēro
tas ir pašreizējā situācija , ar kuru CS tiek saukta.
Tātad, kad es izmantot to ar jauniem tas ir - tā ir vērtība CS.
Un es saku aicinu šo Protams metode šeit.
Oh sorry - saucam Protams metode šeit
bet noteikt vērtību šo būt kāda vērtība
tas ir tepat.
Tāpēc piemēro atslēgvārds pieļauj jums veida mainītu valsts
tas, kas ir kā jQuery ir atļauts kārtot slēdzis
kas tas par jums kā jūs iet cauri
un padarīt DOM elementus vietā jQuery objektu.
Tāpēc tagad es esmu gatavojas noteikt pagaidu funkcija
kas būs greifers prototips kursa.
Un veida, kas to līdz prototipa
un pēc tam iestatiet prototipu uz CS funkciju objekta
jaunu gadījumu, kas.
Vārdu sakot, es esmu sakot vietā -
ja es noteikti šeit bija cs DOT prototips vienāds jaunu kursu.
Tad tas būtu aicinot visu
Šajā konstruktors,
ko es nebūtu vienmēr gribēja.
Tāpēc viss, ko es daru, ir veida radot gandrīz
kā surogāta funkciju, kas būs kursi prototips
par to, un veida atdarina prototips -
protams, bet bez darot viss konstruktors
un noteikt, ka, lai prototipu.
Un tad es esmu tikai pievienojot tik departaments
Šajā gadījumā, ja ir Computer Zinātne CS objektu.
Un tad man ir sava veida tilts versija darām.
Tas nedarbojas IE9.
Tātad, tas ir iemesls, kāpēc es gribēju parādīt veida, kā -
ko tas dara ar kapuci.
Bet jūs varat noteikt to up tādā pašā veidā
kur Econ vienāds funkciju Protams piemērot šos argumentus
un tad saka Econ DOT prototips vienāds objekts dot CreateCourse
dot prototips.
Tāpēc tas rada jaunu objektu kas ir tikai prototips
par kursu un pēc tam noteikt departamentā.
Tāpēc tagad pieņemsim tikai iet noteikts atkļūdotājs šeit un noklikšķiniet uz palaist.
Tur mēs ejam.
Tāpēc CS164 mēs varam redzēt prototips ķēdes mēs esam ieguvuši
īpašības, kuras bija noteikts konstruktors.
Tātad vērtības tiem, kas ir noteikti un pēc tam prototips ķēdi
par CS objektu tas bija nodaļa Computer Science noteikts.
Un pēc tam pamatā prototips ķēdes,
tad mums ir visi metodes un īpašības
, kas ir unikāla ar Protams objekts.
Un tad mums ir pamatteritorijas objekti.
Tāpēc, ka sava veida ātri piemērs prototipa ķēdē.
Un, kā jūs varat redzēt šeit, tur Ir divas vērtības, uz departamentā.
Tāpēc departaments datorzinātņu
un tad departaments nav minētas, ko es teicu
kā noklusējuma vērtību šeit.
Tā prototips ķēdes ir faktiski tikai atsevišķi
link sarakstā.
Un kā tā cenšas atrast īpašumu,
tas būs sākums augstākā līmeņa vērtība.
Tātad, kas ir definēta konstruktors funkcija
un pēc tam kārtot iet uz leju prototipa ķēdē no turienes.
Tāpēc, ka tā konstatēja, tā -
ja tieši šeit, es saku CS50 dot departaments,
tā teiks Computer Science.
Bet, ja es saku VAR -
[Pauze]
Bet, ja es saku humanitārās vienāds ar jaunu kursu
un tad es saku humanitārās dot departaments,
Tiksimies nodaļa nav uzskaitīti jo tas devās uz pirmo -
Es varu apskatīt prototipa ķēdes šeit faktiski.
Tā tas turpinājās pirmais kursu iebilst un ieraudzīja tur nekas
par prototipu ķēdē šis līmenis departamentam
vai katedras vērtībām, lai tad tas lec uz nākamo līmeni,
kursu un izskats nosūtīt tur un atrod to.
Tāpēc tas tikai veida, piemēram, iet uz leju no augšas uz leju
un tas ir sava veida kaut kas ir unikāls
par JavaScript ir ka jūs varat mainīt jebkuru
no šīm vērtībām Jebkurā brīdī.
Tātad konstruktors vai individuāla metode par objektu
ja es gribu, lai noteiktu šo nodaļa, lai kaut ko jaunu,
vai, ja es pat gribu, lai noteiktu jebkura no šīm funkcijām
ka jau pastāv
uz kaut ko jaunu, Es esmu brīva, lai to izdarītu.
Tāpēc tagad man ir CS50 dot addLecture, izskatās, ka.
Un, ja es gribu, lai uzstādītu to uz CS50 addLecture tikai vienāds
tukšu funkciju.
Tad tagad es redzu, tas ir tikai pilnīgi mainījusies
kas jūs nevarat darīt citu valodu
kur jums ir stingrāki klasē, pamatojoties mantojuma
un viss ir veida izveidota.
JavaScript ir ļoti, ļoti elastīga attiecībā uz to.
Labi, pieņemsim lēkt atpakaļ Slaidi.
Tātad, ja, piemēram, vienmēr patīk funkciju
ir īpaši šī vērtība noteikta par to.
Jūs varat zvanīt funkciju dot saistošs
un noteikt, kāda vērtība tam vajadzētu būt.
Jūs varat domāt par to kā -
"Es cenšos domāt par Labs reālās pasaules piemērs, bet ",
Ja jūs vēlaties, lai aizsargātu savu kodu
pret kādu potenciāli aicinot to ar vērtību
tas nebūtu tas.
Tāpat kā, piemēram, AJAX atzvanīšanas piemēram, pārsniedz vai kļūdas.
Tie ir parasti nav sauc
ar labu semantiska vērtība par to.
Un jūs, piemēram, "Labi, es vienmēr vēlas, lai tas būtu vērtība
Kursa objekta ka es esmu strādā ar.
Vai viedoklis, ko es esmu strādājot ar manu kodu
kas pārstāv šo DOM mezglu, jūs varat iestatīt -
Jūs varat saistīt kontekstu šo un tad, kad tas sauc vēlāk
ar jQuery un tas nav laba cenas tam tas būs stick
ko jūs ierobežo to ar.
Tad tur ir funkcija zvans tika Jūs varat norādīt kontekstu
un norādīt jebkuru mainīgo vairāki argumenti.
Un tad tur ir funkcija pieteikties, ko jūs varat iet
kontekstā un Tad nu masīvs
vai argumenti iebilst, ka Es teicu, kā redzat tur.
Un argumenti jebkurā funkcija, ko jūs zvanu,
Jūs varat vienkārši ierakstiet vārdu "argumenti"
un tas būs viss argumenti.
Tā ir "garums" īpašums
kas ir kā iespējams argumenti bija faktiski nodota ka metodēm
jo JavaScript Jūs varat šķirot piesaistīšanas
ar mainīgo skaits argumentus.
Tas ir noderīgi, lai pasakot ja tas bija viens arguments,
pēc tam šo kodu ceļu.
Ja tas bija divi, jūs varētu vēlas sekot citu ceļu.
Tas ļauj jums ir patiešām dinamiskie API Jūsu metodēm.
Jūs varat iedomāties ka ar jQuery
piemēram, ja jums ir dolāru dot vai saistošs.
Un tā veida nav dažādas lietas
par to, vai jūs nodot kādu arguments vai divi vai trīs
vai sākt to ar funkciju.
Tas ir, izmantojot argumentus īpašums
un argumenti garums ir daudz gadījumu
saņemt šo burvju funkcionalitāti notikt.
Lietas, jūs nevarat darīt ar argumenti ir to izmantot tikai
Pēc noklusējuma kā masīva.
Tātad jūs varat teikt argumentus trīs un noteikt to kaut
kā jūs varētu izmantot masīvs uzdevums.
Jūs varat izmantot - daudz no pasvītrojumu metodēm
vai nu kolekciju un darbam ar masīviem,
Jūs varat iet uz argumentiem un tas būs realizēt
ka tas ir argumenti objektu un kārtot
un rūpēties par to, lai jums.
Bet, ja jūs vēlaties izmantot argumenti, kas tiek nodotas
izmantojot funkciju kā masīva,
Jūs varat izmantot pasvītrojuma dot divas masīvs.
Viens no skaita komunālo funkciju
kas ir iebūvēta uzsvērt.