>> Pob hawl, felly heddiw, Rydw i'n mynd i fod yn siarad
am JavaScript a sut y mae'n wahanol i ieithoedd eraill
y gallech fod yn arfer hoffi PHP.
Felly, yn y ddarlith olaf ar Dydd Llun, buom yn siarad ychydig
am yr hyn sy'n debyg, beth gyfarwydd rhwng JavaScript
a PHP neu Python neu Ruby neu C neu ieithoedd eraill
eich bod chi eisoes gyfarwydd ag ef.
Ond JavaScript mewn gwirionedd Mae cymryd wirioneddol unigryw
ar y model gwrthrych sy'n gwneud mae'n fath o gwbl wahanol
na'r rhan fwyaf o ieithoedd sydd ydych yn mynd i ddelio ag ef.
Felly swyddogaethau yn fath
o underappreciated cysyniad mewn JavaScript.
Maent yn ffordd fwy grymus nag eu bod mewn ieithoedd eraill
oherwydd eu bod yn gallu i mewn - am un rheswm,
eu bod yn gallu bod yn pennu fel gwerthoedd.
Felly, i'r dde yma rydym wedi var x yn hafal i swyddogaeth
ac mae'n dosbarth cyntaf werth y gellir eu pasio
gwmpas fel dadl.
Felly nid oes rhaid i chi ddatgan swyddogaeth x
a dim ond yn defnyddio x yn y cwmpas.
Gallwch drosglwyddo werth x yn unrhyw le drwy gydol, chi'n gwybod,
fel dadl i swyddogaeth arall
lle gallwch modiwl allforio fel y soniodd David yn nod.
Felly, y pwynt nesaf yn
bod swyddogaeth yn yn gwrthwynebu yn JavaScript.
Felly, gallwch osod mewn gwirionedd eiddo fel gwerthoedd
ar swyddogaeth a dim ond yn trin mae'n hoffi ei fod yn gwrthrych.
Felly, pan fyddwch yn gweithio gyda jQuery, chi'n gwybod, doler y
ac yna byddwch yn mynd heibio yn dewisydd i mewn iddo
a galw fel swyddogaeth.
Ond yna byddwch hefyd yn wedi doler dot AJAX.
Ac nid yw hynny'n fath o gwneud synnwyr os ydych yn credu
swyddogaeth yn union fel bod rhywbeth y gallwch ei alw ar
neu ffoniwch.
Ond JavaScript yn eich galluogi i gosod eiddo ar swyddogaethau
eiddo yn statig gyda dim ond x dot someProp
gan fy mod sylw at y ffaith i maes 'na.
Y pwynt nesaf, sef ein bod yn mynd i fynd i mewn i ychydig yn fwy
yn fanwl yw'r ffaith bod Gall swyddogaethau gael eu trin
â dosbarthiadau yn JavaScript.
Felly mae cysyniad y gweithredwr newydd
sy'n creu achos newydd o y swyddogaeth ynghyd â math
o fel corff dosbarth tebyg sy'n dod ynghyd ag ef
ac rydym yn mynd i fynd i mewn iddo ychydig yn fwy,
fe'i gelwir yn y prototeip.
Ac mae'n beth sydd yn gwneud JavaScript unigryw iawn o'i gymharu
i ieithoedd eraill sy'n seiliedig dosbarth,
JavaScript yn prototeip sy'n seiliedig ar.
Ac yna dim ond yn y gwaelod yno,
Gall swyddogaeth yn unig yn cael eu galw amlwg gan ein bod yn eu defnyddio i.
Felly dyna dim byd newydd.
Beth arall sy'n unigryw yw
bod araeau mewn gwirionedd yn gwrthrychau.
Dydyn nhw ddim yn hoffi eu bod yn PHP
lle rydych yn unig yn creu amrywiaeth newydd.
Mae hyn mewn gwirionedd yn llaw-fer am ddweud casgliad newydd.
Ac amrywiaeth mewn gwirionedd Is-ddosbarth gwrthrych.
Felly, mae hynny'n rhywbeth gwahanol a byddaf yn mynd
i mewn i ychydig yn fwy fanylion am hynny.
Ac mae'r galluoedd debugging
gyda JavaScript yn wirioneddol unmatched cyn belled ag y Rwyf wedi gweld.
Mae hyn yn screenshot Arolygydd Chrome
yr ydym yn mynd i yn eu defnyddio ar gyfer gweddill
o'r cyflwyniad heddiw.
Ac i ddod i hyn, 'ch jyst ewch i ffeilio offer datblygwr
ac agored Arolygydd Chrome neu gallwch dde chlecia
a chliciwch dangos elfen yr wyf yn credu ei fod yn ar dudalen HTML
neu yr wyf yn credu ei fod yn gorchymyn opsiwn J yn agor hyn i fyny.
Ond byddwn yn mynd i mewn i hyn ac rydych mewn gwirionedd yn gosod torbwyntiau
wrth i chi yn rhedeg drwy y cod JavaScript a didoli
o werthuso beth mae'r leol newidynnau, beth yw gwerth
o hyn yw ac mae'n ei gwneud yn ffordd haws o cod dadfygio.
Ac Peidio - nid yw hyn yn cyfyngu i god-ochr porwr
ond gallwch mewn gwirionedd rhedeg enghraifft
o hyn Arolygydd Chrome ar gyfer eich cod ochr gwasanaeth
sydd mewn gwirionedd daclus oherwydd eich Gall cam drwy linell wrth linell
fel cais yn dod i mewn i'ch gweinydd a gweld beth sy'n digwydd
a chwarae gyda newidynnau yn y consol i lawr yma.
Felly, fel y soniais, JavaScript yn iaith sy'n seiliedig ar prototeip-
sy'n golygu bod set o werthoedd diofyn sydd math
o gudd ar gyfer pob swyddogaeth
yn y gwrthrych dot eiddo prototeip.
Felly mae'n fath o hash o gwerthoedd diofyn unig yn wahanol
pan fyddwch yn galw i weithredu gyda'r allweddair newydd,
hynny yn cael eu gosod gan ddiofyn fel swyddogaethau
sydd ar gael ar y lle.
Felly dyna mewn gwirionedd wirioneddol effeithlon ar gyfer y -
ei fod yn ffordd effeithlon o creu gwrthrychau cof doeth
oherwydd bod y JavaScript yn unig wedi Rhedeg i gadw golwg ar
prototeip y gwrthrych.
Mae'n fath o tynnu sylw at y
pan fyddwch yn cretae newydd achos o dosbarth.
A allwch chi hefyd dynwared etifeddiaeth fel sy'n hysbys
mewn ieithoedd yn y dosbarth- lle mae gennych fath
o fel hyn yn ymestyn hynny, ymestyn y gallwch dynwared
bod yn JavaScript drwy hyn a elwir y
gadwyn prototeip.
A byddwn yn gweld enghreifftiau am hynny.
Felly, os yw eich - plugins jQuery mewn gwirionedd yn argymell jQuery
awduron i ddefnyddio doler dot fn i ychwanegu functionality
i'r llyfrgell jQuery.
Ac rydym yn wir yn mynd i neidio - Felly, ar y dudalen hon,
mae gennym y ddoler - Yr wyf yn cynnwys jQuery.
Ac os ydych yn gwneud doler dot yn y consol
yr wyf yn sôn am ddod â chi i fyny drwy newid gorchymyn J
neu dim ond yn mynd i View, Offer Datblygwr, Datblygwr
a mynd i'r tab Ffynonellau.
[Anghlywadwy Sylw]
Oh yn siwr. Felly, pan ddechreuais i deipio mewn newidyn,
mae'n auto-gwblhau i mi beth sydd ar gael yno.
Felly yr wyf yn teipio mewn ddoler a gallaf gweld Rwy'n credu Chrome rai
adeiledig yn ddoler, doler a doler x.
Felly, ar hyn o bryd Fi jyst eisiau doler ac yr wyf yn rhoi mewn dot.
Ac yna mae'n dangos i mi holl eiddo
sydd ar gael ar y gwrthrych jQuery.
Ond os wyf yn gwneud doler dot prototeip,
Yr wyf yn awr yn gweld holl ddulliau fy mod yn gyfarwydd â defnyddio
pan fyddaf yn cael y ddoler, dewisydd ac yna yr wyf cadwyn oddi ar hynny gyda,
eich bod yn gwybod, ychwanegu dosbarth neu atodi neu aneglur neu unrhyw un yn y blaen.
Mae'r rheini i gyd mewn gwirionedd yn ar y prototeip
sydd, o dan y cwfl y jQuery yn creu achos newydd ynddo'i hun
ac mae'n fath o cuddio pob manylion hynny gennych.
Felly, y pwynt yr oeddwn yn gwneud yn ôl dros yma
gyda'r swyddogaeth, maent yn mewn gwirionedd yn cuddio prototeip oddi wrthych
a dim ond alias ei i ddoler dot fn.
Felly, rhan fwyaf o bobl mewn gwirionedd yn nid ydynt yn sylweddoli
bod prototeip o dan y that's cwfl -
y gallwch dynnu i mewn ac ychwanegu ymarferoldeb ychwanegol
i bob achos jQuery os hoffech chi.
Felly, y gweithredydd "newydd" yn mewn gwirionedd math o anodd
i ddeall yn gyntaf.
Pan fyddwch yn galw swyddogaeth gyda "newydd",
ei fod yn hollol wahanol ffordd o alw y swyddogaeth
fel os ydych yn unig a elwir yn mae'n amlwg.
Felly, y gweithredydd "newydd" yn creu hyn a elwir yn achos newydd
o wrthrych neu newydd achos o, gall eich barn chi
y gwrthrych fel dosbarth.
A phan fydd hyn yn digwydd, mae'r gwerth o hyn a all fod yn gyfarwydd
gyda o jQuery, maent yn fath o yn gosod hwn
i ba bynnag yn gyfleus ar y pryd.
Fel arfer, maent yn gosod i'r nod DOM ar hyn o bryd eich bod yn
ymlaen fel eich bod yn mynd drwyddo fel pob neu rywbeth fel 'na.
Maent yn - y gwerth hwn i fod i fod yn werth y lle
eich bod yn creu gyda "newydd", sy'n cynnwys popeth
ar y gadwyn prototeip a phob o'r dulliau y byddech yn dod o hyd i
fel eiddo prototeip.
Felly, mae'n dibynnu ar ba mor yn cael ei alw'n swyddogaeth,
beth yw gwerth hyn yw.
Ac mae'n wir yn ddryslyd os ydych yn newydd i JavaScript.
Ond mae pob swyddogaeth sy'n cael ei alw Mae - mae o gwerth hwn.
Felly hyd yn oed os nad ydych wedi creu yn enghraifft o rywbeth newydd,
bod hyn yn cymryd yn ganiataol i fod yn fyd-eang.
Neu gallwch ffonio swyddogaeth ddefnyddio'r dull alwad
lle mae'r cais dull yn JavaScript.
Gallwch swyddogaeth a nodi beth y dylai hyn fod.
Felly, gallwch ei wneud yn ddeinamig, sy'n hynod bwerus
ond hefyd yn eich galluogi i wneud bethau y gellir eu gamarweiniol
ac yn ddryslyd i datblygwyr eraill
os nad ydynt yn ei ddefnyddio at y ffaith.
Ac jQuery, byddwn yn dadlau yn ei gwneud yn hyd yn oed yn fwy dryslyd
drwy ei gwneud yn gyfleus ac yn ei osod
at y nod DOM ar hyn o bryd.
Ond mae'r rheol syml i gofio beth yw gwerth hyn yw
pan fyddwch yn chwilio
ar alwad swyddogaethol yn hyn sy'n weddill o'r dot.
Felly os oes gennych gwrthrych
ac mae'n rhywbeth dot rhywbeth yn y swyddogaeth
eich bod yn ffonio yna bydd y gwerth cyntaf yw beth yw gwerth
o hyn yw.
Felly dyma yn enghraifft cod
lle yr wyf i'n creu gwrthrych newydd llythrennol
sydd ychydig y gwrthrych greu gyda braces cyrliog
ac rwy'n gosod enw i Bob
ac yna mae gen i sayName dull yma sydd -
felly y tu mewn sayName hwn os wyf yn x dot sayName,
gwerth hyn yn hafal x oherwydd bod y chwith
y dot yn x. Felly, os Wyf yn ei alw x dot sayName,
byddai'n dweud Helo Bob.
Ac yna enghraifft arall
lle dwi'n mewn gwirionedd yn pennu x dot sayName, y swyddogaeth
i'r newidyn Y, sydd, fel y crybwyllais
yn JavaScript i chi Gall neilltuo swyddogaethau
i newidynnau pryd bynnag y byddwch eisiau, mae'n wirioneddol hyblyg y ffordd honno,
ond erbyn hyn pan fydda i'n galw Y, mae wedi colli cyd-destun x.
Felly, mae hyn bellach yn fyd-eang neu os ydych yn y modd llym,
Yr wyf yn credu ei fod yn null neu heb eu diffinio.
Ond - nid Felly Y yn yr hyn yr ydych chi'n disgwyl yma os ydych yn chwilio
yn x ac rydych yn mynd i alw sayName,
ydych yn disgwyl yr enw hwn i fod i fod yn Bob.
Ond os ydych yn tynnu i ffwrdd y gwrthrych a'i alw'n
ei ben ei hun, mae hyn yn fyd-eang erbyn hyn.
A dyna beth oeddwn yn sôn am pan fyddwch yn gweld doler dot hyn,
yn aml nid ydynt yn meddwl am beth yn union sy'n digwydd.
Ond jQuery math o wedi eu iaith parth-penodol eu hunain
ar gyfer ymdrin â hyn ac nid yw'n hyn yr ydych yn ei ddefnyddio
yn JavaScript.
Ac yr wyf dynnu sylw at hyn oherwydd ei fod yn bwysig iawn
ar gyfer ysgrifennu wedi'i strwythuro'n dda- gwrthrych oriented cod
yn Javascript i'w gwirionedd dealltwriaeth a gafael dda
o sut mae hyn yn gweithio a sut y y gwaith model gwrthrych
a sut mae'r gweithredwr newydd yn gweithio.
Fel arall, byddwch yn dod i ben i fyny gyda spaghetti jQuery
lle mae popeth yn fath o'r holl dros y lle
a dim ond delio â'r DOM.
Os gallwch mewn gwirionedd yn ysgrifennu JavaScript
mewn ffordd fwy strwythuredig, mae'n ei gwneud yn llawer haws
i weithio gyda, i ddatrys o gwahanu'r pryderon
o'r delio gyda'r diweddaru'r DOM a delio
gyda'r rhesymeg gwirioneddol a cod.
Felly, gadewch i ni edrych ar y ychydig o enghreifftiau o gwmpas hynny.
Felly mae gen i rai enghreifftiau yma.
Felly, mae hyn yn unig yw enghraifft syml o ddefnyddio gwrthrych JavaScript
ac ychwanegu ychydig o swyddogaethau iddo ac yna creu math
o fel cais bach.
Felly, mae'n syml iawn mewn gwirionedd.
Yr unig beth y mae'n ei wneud yw ar y dechrau mae'n annog eich enw.
Felly, byddaf yn dweud Tim ac yna rydych Gall newid eich enw i Bob.
A dyna hyn i gyd cais ei wneud.
Ond beth hoffwn i bwynt allan yw sut mae'n ei wneud.
Felly mae gen i enw hwn generadur gwrthrych sydd â dull dechrau
sy'n gofyn i'r defnyddiwr am eu henw
at jyst yn ffonio askForName hwn
sydd i lawr yma, mae'r brydlon
os nad yw enw'r wedi ei neilltuo yna mae'n gofyn amdano eto
drwy ffonio askForName hwn.
Ac yna unwaith y bydd yn cael yr enw, mae'n galw yr enw diweddariad.
Felly, mae hyn wedyn yn gosod y enw defnyddiwr yn y tag h1.
Ac os nad yw'r enw yn gosod, mae'n taflu gwall.
[Anghlywadwy Sylw]
Oh yn siwr. Felly mae'n gosod y enw defnyddiwr yn tag h1
drwy ffonio setDisplayName sy'n gosod y HTML
yn enw cynhwysydd a JS Im 'yn prefixing fy holl HTML
gyda dewiswyr JS dim ond am mae'n arfer da i gael
i yn unig i wneud nid felly yn ddryslyd
pan fyddwch yn defnyddio detholwyr fel ID neu ddosbarthiadau
ar gyfer y ddau arddull a rhesymeg
yn eich JavaScript ceisiadau pen blaen.
Oherwydd os oes gennych wahanol grwpiau o bobl sy'n gweithio
ar y sylfaen cod a chi cael dewisydd yno
bod y dylunydd yn penderfynu i newid oherwydd it's -
nid yw'n edrych yn wych, felly maent am i roi mewn dosbarth newydd a chymryd
allan eich un chi ac rydych yn dibynnu arno at ddibenion JavaScript,
yna eich cod yn torri.
Mae'n dda i rhagddodiad a didoli
o namespace fel bron yr Dosbarthiadau sy'n gysylltiedig â Javascript
neu briodoleddau gyda rhagddodiad o JS.
Felly, mae hyn yn eithaf syml a gallwch weld
ym mhob un o'r achosion hyn rwy'n galw dychwelyd hwn ar y diwedd.
Felly, mae hyn yn dda arfer i fynd i mewn,
i roi ei fod yn gwerth dychwelyd dilys.
Yn askForName Dydw i ddim yn oherwydd mae hynny'n gwneud synnwyr
y byddech yn cael enw yn ôl.
Ond beth sy'n caniatáu i chi ei wneud, yna
os byddwch yn dychwelyd y diweddariad hwn enw, mae'n dychwelyd y gwerth
o setDisplayName sy'n dychwelyd y gwerth o hyn.
Ac mae hynny'n caniatáu i chi i ddatrys o gadwyn wrth i chi ddefnyddio
yn jQuery trwy ddychwelyd gwerth hyn bob tro.
Mae hyn yn cyfeirio at y amcanion presennol
felly fe allech chi alw dot hwn askForName dot setDisplayName
a byddai'n cadw'r gwerth hyn ac yn eich galluogi
i gael cadwyn neis yno.
Ac yna yn - felly yn ail enghraifft hwn.
[Saib]
Mae pob hawl.
OK. Felly, gadewch i ni fynd yn ei flaen ac yn agor i fyny 'r chysura
ac yn mynd i fy tab Ffynonellau.
Byddwn yn pop at hyn mewn gwirionedd.
Felly, yn y datblygwr Chrome offer y soniais amdanynt,
mae darn hwn ar y dde a -
gallwch weld yr arwydd stop er yn ddiofyn, mae'n ddu.
Ond pan fyddwch yn llygoden dros, mae'n dweud "Peidiwch oedi ar eithriadau.
Cliciwch ar y oedi ar pob eithriadau. "
A phan fyddwch yn clicio ei eto, mae'n troi las.
Ac yn awr ar unrhyw adeg bod mae 'na gwall taflu
yn eich cod JavaScript, mae'n annhymerus ' stopio ar y pwynt ac yn eich galluogi
i werthuso'r hyn sy'n digwydd.
Felly - A dyna wir yn ddefnyddiol cysyniad ar fin tynnu sylw.
Ac yna os ydych yn clicio eto, mae'n troi porffor
ac mae hyn yn arfer hyn yr wyf yn ei gadw mewn
Dim ond torri'r cod pan fo eithriad
nad yw wedi cael ei ddal.
Felly mae llawer o weithiau yn jQuery ar gyfer enghraifft, maent yn ceisio dalfeydd
i brofi a porwr neu beidio Mae rhyw fath o allu
ac yn parhau oddi yno.
Nid yw hyn ond pan fydd mae 'na gwall
Nid yw hynny wedi bod yn dal mewn dal gais.
Felly, gadewch i ni geisio a chyflwyno enw sy'n wag.
Felly, gallaf weld bod y cod yn awr yn dod i ben
ar y dull updateName a gallaf llygoden dros enwau
a gweld ei fod yn wag i yn wag.
Yno mae'n hafal i wag.
Felly, os nad enwi taflu newydd gwall ac yn awr yr wyf yn gallu camu yn ôl
drwy'r swyddogaeth colofn a dweud, "OK,
ble oedd hyn yn dod, "ac weld beth yw gwerth cleient yn.
Felly mae wedi dull askForName,
setDisplayName cychwyn a updateName.
Ac mae hyn yn unig yw yn ddefnyddiol iawn ffordd y gallwch weld yr holl
newidynnau sydd ar gael yn y cwmpas yn ogystal
fel y newidynnau cau, felly mae unrhyw beth sy'n cael ei gau
drosodd gan y swyddogaeth hon.
Ac felly gallaf weld bod - beth yw gwerth cleient yn
a beth yw gwerth hyn yw.
Felly, mae hyn 'achos rydym yn yn jQuery yn gyfartal
at yr elfen DOM ar hyn o bryd.
Ond mae'n ddefnyddiol iawn ar gyfer debugging Cod
i dorri ar wallau fel hyn.
Nodwedd arall o'r Arolygydd Chrome yn
bod ar unrhyw adeg gallwch cliciwch ar y gwahanol linellau
yn y rhes a chi helpu torri yn y mannau
lle rydych wedi gosod torbwyntiau eu bod yn y cyfeirir atynt fel.
Felly os wyf yn clicio, y lein yn troi'n las.
Felly, gadewch i mi barhau â'r gweithredu yma, OK, a dorrodd.
Ac yn awr gadewch i ni osod enw i Alice a tharo Anfon.
Felly nawr gallaf weld hyd yn oed cyn iddo gyrraedd y pwynt
o ddiweddaru popeth, mae'n awr yn stopio yma fel y gallaf weld
bod fy enw hwn yn Alice ac yna gallaf barhau -
gadewch i mi ail-lwytho y dudalen.
Mae pob hawl, felly nawr ei fod yn yn dechrau am ddechrau eto,
mae wedi dod i ben ar hyn o lein a gallaf weld
yr enw hwnnw ar hyn o bryd undefined.
askForName yw pa weithredu ei yw, felly dyna yn aml hefyd yn ddefnyddiol
os oes gennych swyddogaethau sy'n dod o wahanol ffeiliau
neu fannau gwahanol yn yr cod, gallwch weld lle mae,
ac yna neidio i hynny, bydd yn tynnu sylw at hynny.
Felly, da i fynd i mewn i'r arfer o ddefnyddio offer debugging
sydd nid yn unig chysura dot log.
Iawn, felly gadewch i ni gymryd edrych ar ail enghraifft
sy'n gwneud mwy o ddefnydd o prototeipiau gan fy mod wedi cyfeirio atynt.
Felly, yn yr enghraifft hon,
rydym yn creu newydd swyddogaeth o'r enw CS
ac mae hyn yn cyfalafu felly mae'r safon confensiwn
yn JavaScript yw os yw swyddogaeth i fod i gael ei ddefnyddio
fel Constructor, yn hytrach na
i ddim ond normal swyddogaeth, rydych gyfalafu.
Felly, yr wyf wedi cyfalaf CS ac mae hyn yn cymryd courseId amrywiol
a courseTitle sy'n Yr wyf yn gosod i courseId hwn,
courseTitle hwn yn y Constructor.
Ac yna yr wyf hefyd yn gosod fyfyrwyr a darlithoedd fel araeau gwag.
Felly, y rheswm eich bod chi -
Iawn, felly mae'r prototeip Yna eiddo eu diffinio
i lawr yma gyda - felly templed yn unig yw tanlinellu syml
templed, templed tanlinellu bod yn ffordd yr ydych yn gallu -
debyg i'r templedi bod David wedi crybwyll
ar y gweinydd, gallwch ysgrifennwch tag sgript
nad yw'n JavaScript sgript ond HTML testun
a beth rwy'n ei wneud gyda jQuery yw -
nid yw'n cadw'r rhain agored, yeah, dyna ni.
Gyda jQuery, mae'n cael y Gwerth HTML y templed
ac yna yn rhedeg drwy'r tanlinellu llyfrgelloedd cyfleustodau
injan templed.
Felly y ddogfennaeth am hynny yw i lawr yma
o dan y templed cyfleustodau
ond yn y bôn gallwch ddarllen ychydig yn fwy am y peth.
Ond mae'n gwerthuso llinyn hwn ac yn troi i mewn i swyddogaeth
sydd wedyn gallwn drosglwyddo data i mewn ac yn galw ddynamig.
Mae'r ddau ddull nesaf gen i yn addStudent a addLecture.
Mae'r rhain yn dim ond eu hychwanegu at y araeau mewnol yr wyf wedi gosod
yn y Constructor a yna bydd y dull rendr.
Felly, gadewch i ni greu'r newydd achos o CS a elwir yn 164
sydd ar y cwrs hwn rhif 164 a theitl.
Ac yna CS50 sydd CS50 a intro i CS1
ac yna ychwanegu ychydig darlithoedd fyfyrwyr
ac yna galw CS50 rendro.
Ac os wyf yn rhedeg cod, felly Rwy'n gwneud hynny gyda EVAL.
Dydych chi byth yn wir am ddefnyddio y EVAL, ond Im 'jyst fath
o gymryd holl JavaScript dyna i mewn yma
ac yn gweithredu ar y hedfan.
Mae'n peri i mewn i hyn templed y achosion newydd
y dosbarth CS sydd wedi eiddo, felly rydym wedi wedi mynd
trwy ac wedi gwneud addLecture a addStudent i bob un.
Ac fel y soniais oherwydd fy mod i'n dychwelyd y,
Gall Fi 'n weithredol cadwyn hyn galwadau addLecture a addStudent
a bydd yn gweithio yr un mor dda.
Y nodwedd arall yn JavaScript bod hyd yn oed yn fwy defnyddiol
ar yr ochr gweinydd lle chi wir ar unrhyw adeg benodol
os yw eich cais yn cael nid yn fwy yn gwybod ble rydych chi
ac mae'n fwy anodd i osod torbwyntiau unigol hyn
y soniais amdanynt yn Arolygydd Chrome yn
i ddefnyddio'r gair allweddol debugger.
Felly, 'i' jyst D-E-B-U-G-G-E-R.
A phan fyddwch yn rhoi debugger keyword yn eich cod
ac mae gennych yr - dyna ni, dau Gs.
Pan fyddwch yn rhoi'r debugger keyword yn eich cod
a ydych yn rhedeg debugger
megis y Chrome Arolygydd yma
neu 'r Chrome ochr y gweinydd Arolygydd, mae'n dweud JavaScript
i roi'r gorau i weithredu ar y llinell o god ac yna mae'n caniatáu i chi
i gamu trwy weddill o gyflawni codau.
Felly os wyf yn cliciwch cod rhedeg yma, mae'n awr yn rhoi'r gorau
yn y llinell hon debugger a gallaf gweld OK, dyma gwerth CS50
ac mae'n gwrs got teitl, ID cwrs,
'i' got unrhyw ddarlithoedd, oes myfyrwyr.
Ac yna gallaf gamu trwy y addLecture gyfan,
Gallaf weld ei fod yn gwthio ar y darlithoedd hyn,
llygoden dros hynny, "Helo Byd".
Gallaf mewn gwirionedd yn y consol yn gwneud hyn felly mae hyn yn ei osod
at y gwrthrych presennol eich bod yn i mewn
Mae'r ddarlith hon yw "Helo Byd".
Ac yn cadw gamu drwy gymaint ag y dymunaf.
Os nad wyf am i gamu
i mewn i achos swyddogaeth alwad ' Yr wyf yn gwybod beth sy'n digwydd
i wneud yn mynd i mewn addLecture, mae botwm yma i'r dde yma
sy'n dweud "Step dros y swyddogaeth galwadau, "ac fel y gallaf fynd
at y pwynt yn fy mod efallai meddwl am rywbeth.
Fel er enghraifft 164 rendro.
Felly, ar hyn o bryd, mae'n mynd i gael eu rendro.
Gallaf weld templed hwn yw'r templed llunio.
Gallaf weld ar y pwynt hwn yr wyf yn Dylai fod dau fyfyriwr
a dwy ddarlith.
Ac yna mae y prototeip cadwyn yr oeddwn yn cyfeirio ato.
Felly mae'r un diofyn sy'n dod ynghyd â dim ond gwrthrych
yn JavaScript yn gyffredinol,
mae'n dod gyda dau llinyn gwerth Constructor.
Ac yna y rhai sy'n Rwyf wedi ychwanegu ar fy hun
gyda'r addLecture, addStudent ac yna eiddo
sy'n unigryw i hyn enghraifft y dosbarth
gan ei fod yn galw i rym gyda'r allweddair newydd.
Felly, gadewch i ni wneud dim ond un mwy enghraifft, ar hyn
ac yna byddwn yn camu i rai pethau'n fwy diddorol
ar yr ochr gweinydd.
Felly, gadewch i ni fynd yn ei flaen ac agor yr enghraifft olaf sydd -
gadewch i ni weld, ble mae'r cod?
Nid wyf yn gwybod ble aeth hyn.
OK, wel, yr ydym yn bosibl y bydd yn sgip dros y cod hwn, yna mewn gwirionedd -
oh dal ar, yr wyf yn credu fy mod yn colli y daflen arddull ar gyfer y cod.
Iawn, felly gadewch i ni wneud hwn ychydig yn fwy.
Yn yr enghraifft hon, dwi'n dangos ychydig yn fwy ar y lleoliad
i fyny'r gadwyn prototeip,
felly sefydlu etifeddiaeth gyda'r JavaScript.
Felly, yn yr achos hwn, rydym wedi catalog sy'n mynd
i gynnal yn ôl pob tebyg cyrsiau lluosog.
Ac felly catalog wedi yn dulliau addCourse.
Felly mae'n gwirio a yw'r cwrs sy'n cael ei basio yn yn enghraifft
wrth gwrs yn galw i rym gyda'r allweddair newydd.
Felly, os ydych yn ceisio ac yn anfon
mewn rhywbeth gwahanol, bydd yn gweiddi ar chi.
Mae'r dull rendr a fydd yn gwneud pob un o'r cyrsiau
drwy lunio ei templed isod.
Ac mae gennym y cwrs lle mae mynediad
yn yr achos hwn y dosbarth sylfaenol ar gyfer cyrsiau adrannau unigol.
Ac yn hytrach na lleoliad bob
y dot cwrs prototeip dot dull
neu eiddo gan ddefnyddio'r ymestyn cynorthwy-ydd yn y llyfrgell tanlinellu
i ddatrys yr alwad yn ymestyn prototeip hwn gyda phob
y tai hyn, sydd yn ddefnyddiol, ychydig yn haws i'w darllen.
Ac yna i lawr yma yn gwneud hyn a elwir yn gosod
i fyny'r gadwyn prototeip.
Felly, mae hyn mewn gwirionedd ychydig yn anodd i bobl yn gyntaf
a hyd yn oed yn dal i fod wedi gwneud hyn am dro, mae'n fath o anodd
i lapio eich pen o gwmpas.
Ond peidiwch â gadael i hynny dychryn chi.
Felly, yr wyf i'n sefydlu newydd -
dosbarth newydd sbon gwrthwynebu yma, CS.
Ac yn y Constructor,
I ddim yn dweud y cwrs cymhwyso hyn dadleuon.
Felly dadleuon yn arbennig gwerth Amcana gallech ei alw'n
yn JavaScript, y gair allweddol sy'n cynnwys yr holl
o'r popeth sy'n pasio ar hyd yw dadleuon
swyddogaeth honno ar gael â'r dadleuon galw,
gyda'r allweddair dadleuon.
Felly, gan fy mod yn galw gyda chwrs dot yn berthnasol,
dyma'r cyd-destun presennol CS yn cael ei alw ag ef.
Felly, pan fyddaf yn galw gyda newydd mae'n - mae'n werth CS.
Ac yr wyf ddim yn dweud yn galw hyn yn dull cwrs hyd yma.
Oh ddrwg gennym - yn galw hyn yn dull cwrs iawn yma
ond gosod y gwerth hwn i fod yn beth bynnag yw gwerth
o hyn yn iawn yma.
Felly, yr allweddair berthnasol yn caniatáu i chi math o newid y wladwriaeth
y mae hwn yn sut jQuery yn cael ei ganiatáu i ddatrys switsh
allan hyn ar chi fel ydych yn mynd trwy
a gwneud elfennau DOM yn hytrach na'r gwrthrych jQuery.
Felly, yn awr yr wyf i'n mynd i osod swyddogaeth dros dro
a fydd yn chrafangia 'r prototeip y cwrs.
Ac math o osod at ei prototeip
ac yna gosod y prototeip ar y gwrthrych swyddogaeth CS
i achos newydd o hynny.
Felly, yn y bôn rwy'n gan ddweud yn lle hynny -
os byddaf i lawr yma oedd CS dot prototeip yn dychwelyd cwrs newydd.
Yna byddai'n cael ei galw popeth
yn y swyddogaeth Constructor hwn,
a fyddwn i ddim o reidrwydd eisiau.
Felly, y cyfan yr wyf i'n ei wneud yw math o greu bron
fel swyddogaeth dirprwyol sy'n bydd yn rhaid i'r prototeip cyrsiau
arno a math o dynwared y prototeip -
y cwrs ond heb wneud popeth yn y Constructor
ac yn gosod hynny i'r prototeip.
Ac yna Im 'jyst gan ychwanegu felly mae'r adran
yn yr achos hwn Cyfrifiadur Gwyddoniaeth ar gyfer y gwrthrych CS.
Ac yna mae gen i fath o Fersiwn pont o wneud hynny.
Nid yw'n gweithio yn IE9.
Felly dyna pam yr wyf eisiau i ddangos y math o sut -
beth mae hyn yn ei wneud o dan y cwfl.
Ond gallwch osod i fyny yn yr un ffordd
lle Econ hafal i swyddogaeth cwrs yn berthnasol dadleuon hyn
ac wedyn yn dweud Econ dot prototeip yn dychwelyd gwrthrych dot CreateCourse
dot prototeip.
Felly, mae'n creu gwrthrych newydd sydd ychydig prototeip
ar gyfer y cwrs, ac yna gosod yr adran yno.
Felly nawr gadewch i jyst yn mynd gosod debugger yma a chliciwch ar ffo.
Dyna ni fynd.
Felly CS164 gallwn weld y gadwyn prototeip rydym wedi cael y
eiddo a oedd yn a osodwyd yn y Constructor.
Felly gwerthoedd hyn a osodwyd ac yna ar y gadwyn prototeip
am y gwrthrych CS ei fod wedi gosod Adran Gyfrifiadureg.
Ac yna ar y sylfaenol cadwyn prototeip,
yna mae gennym yr holl dulliau ac eiddo
sydd yn unigryw i y gwrthrych cwrs.
Ac yna mae gennym amcanion sylfaenol.
Er mwyn i fath o cyflym enghraifft o'r gadwyn prototeip.
Ac fel y gwelwch yma, mae dau werth fesul adran.
Felly mae adran gwyddoniaeth gyfrifiadurol
ac yna adran heb eu rhestru yr wyf yn dweud
fel gwerth diofyn yma.
Felly, y gadwyn prototeip mewn gwirionedd dim ond yn unigol
rhestr gyswllt.
Ac fel ei fod yn ceisio dod o hyd i eiddo,
bydd yn dechrau ar y gwerth ar y lefel uchaf.
Felly beth yw'r ddiffinnir yn y swyddogaeth Constructor
ac yna fath o fynd i lawr y gadwyn prototeip oddi yno.
Felly, gan ei fod yn dod o hyd, felly -
os dde yma, yr wyf yn dweud CS50 dot Adran,
bydd yn dweud Cyfrifiadureg.
Ond os wyf yn dweud var -
[Saib]
Ond os wyf yn dweud dyniaethau yn dychwelyd cwrs newydd
ac yna yr wyf yn dweud dyniaethau dot adran,
'N annhymerus' yn gweld adran sydd heb eu rhestru oherwydd ei fod yn mynd i gyntaf -
Gallaf edrych ar y prototeip gadwyn yma mewn gwirionedd.
Felly aeth y tro cyntaf i'r cwrs yn gwrthwynebu ac yn gweld does dim byd
ar y gadwyn prototeip yn y lefel hon ar gyfer yr adran
neu ar gyfer y gwerthoedd adran er yna mae'n neidio i'r lefel nesaf,
y cwrs ac yn edrych ymlaen yno ac yn ei chael hi'n.
Felly, 'i jyst fath o fel mynd i lawr o'r brig i lawr
a dyna fath o rhywbeth sy'n unigryw
am JavaScript y gallwch newid unrhyw
gwerthoedd hyn ar unrhyw adeg benodol.
Felly, yn y Constructor neu mewn dull unigol ar y gwrthrych
os ydw i am osod hwn adran i rywbeth newydd,
neu os Rwyf hyd yn oed am osod unrhyw un o'r swyddogaethau hyn
sydd eisoes yn bodoli
i rywbeth newydd, Rwy'n rhydd i wneud hynny.
Felly, ar hyn o bryd gen i CS50 dot addLecture, yn edrych fel 'na.
Ac os ydw i am osod i CS50 addLecture dim ond yn dychwelyd
i weithredu yn wag.
Yna, erbyn hyn gallaf weld ei fod yn dim ond newid yn llwyr
nad ydych yn gallu i wneud ieithoedd arall
lle mae gennych llymach etifeddiaeth yn y dosbarth
ac mae popeth yn fath o sefydlu.
JavaScript yn iawn, iawn hyblyg o ran hynny.
OK, gadewch i ni neidio yn ôl yn y sleidiau.
Felly, os er enghraifft rydych Byddai bob amser yn hoffi swyddogaeth
i gael benodol y gwerth hwn osodwyd ar ei chyfer.
Gallwch ffonio swyddogaeth dot rhwymo
ac yn gosod yr hyn y mae'r gwerth y dylai hyn fod.
Gallwch chi feddwl am y peth fel -
"Im 'yn ceisio i feddwl am da enghraifft byd go iawn ond ",
os ydych am i amddiffyn eich cod
erbyn rhywun a allai fod yn yn galw 'i ag a gwerth
na fyddai hynny'n hwn.
Fel er enghraifft AJAX adalwad fel gormodedd neu wall.
Fel arfer nid y rhai yn cael eu galw
gyda semantig da gwerth o hyn.
A ydych chi fel, "Iawn, yr wyf bob amser yn am i hyn fod gwerth
y gwrthrych cwrs fy mod i'n gweithio gyda nhw.
Neu y farn ac rwy'n yn gweithio â hwy yn fy cod
sy'n cynrychioli hon DOM nod, gallwch osod -
gallwch rhwymo cyd-destun hwn ac yna pan ei fod yn enw yn ddiweddarach
gan nad oes gan jQuery ac ei fod yn gwerth da o hyn bydd yn glynu
yr hyn yr ydych ffinio gyda.
Yna mae swyddogaeth alwad yn gallwch nodi cyd-destun
a nodi unrhyw newidyn nifer o ddadleuon.
Ac yna mae swyddogaeth berthnasol y gallwch basio
yn y cyd-destun a yna naill ai arae
neu dadleuon gwrthrychau sy'n Soniais wrth i chi weld yno.
Ac mae'r dadleuon mewn unrhyw swyddogaeth yr ydych yn ei alw,
gallwch deipio i mewn y gair "dadleuon"
a bydd yn cael yr holl y dadleuon.
Mae ganddo "hyd" eiddo
sef y ffordd y caiff dadleuon yn trosglwyddo mewn gwirionedd i'r hyn a dulliau
oherwydd yn JavaScript gallwch ddatrys yr alwad
gyda niferoedd amrywiol o ddadleuon.
Mae'n ddefnyddiol dros ddweud os oedd yr un ddadl,
yna dilyn y llwybr y cod hwn.
Os oedd dau, efallai eich bod am ddilyn ffordd arall.
Mae'n caniatáu i chi gael mewn gwirionedd APIs deinamig ar gyfer eich dulliau.
Gallwch chi feddwl am hynny gyda jQuery
fel pan fydd gennych doler dot ar neu rwymo.
Ac mae'n fath o wneud pethau gwahanol
a ydych yn rhoi un dadl neu ddau neu dri
neu ddechrau 'i ag a swyddogaeth.
Mae'n cael ei defnyddio dadleuon eiddo
ac mae'r dadleuon hyd mewn llawer o achosion
i gael hud hwn ymarferoldeb ddigwydd.
Y pethau nad ydych yn gallu ei wneud gyda dadleuon yn ei ddefnyddio yn unig
yn ddiofyn fel arae.
Felly, gallwch ddweud dadleuon tri a'i osod i rywbeth
gan y gallech ddefnyddio yr aseiniad amrywiaeth.
Gallwch ddefnyddio'r - mae llawer o'r dulliau tanlinellu
ar gyfer naill ai casgliadau neu ar gyfer gweithio gyda arrays,
gallwch basio mewn dadleuon a bydd yn sylweddoli
bod ei fod yn dadleuon gwrthrych a didoli
o yn gofalu am hynny ar eich rhan.
Ond os ydych eisiau defnyddio'r dadleuon sy'n cael eu pasio
trwy swyddogaeth fel arae,
gallwch ddefnyddio tanlinellu dot dau amrywiaeth.
Un o'r nifer swyddogaethau cyfleustodau
sy'n adeiladu i mewn i tanlinellu.