>> Okei, niin tänään, Aion puhua
siitä Javascript ja kuinka se on eroaa muista kielistä
että saatat olla käytetään kuten PHP.
Joten viime luento Maanantaina puhuimme vähän
siitä, mikä on samankaltainen, mikä on tuttu välillä JavaScript
ja PHP tai Python tai Ruby tai C tai muilla kielillä
että olet jo perehtynyt.
Mutta JavaScript se todella on todella ainutlaatuinen ottamaan
on esine malli, jonka avulla se tavallaan täysin erilainen
kuin useimmat kielet aiot käsitellä.
Joten toiminnot ovat eräänlainen
ja underappreciated käsite JavaScript.
Ne ovat tapa tehokkaampia kuin ne ovat muilla kielillä
koska ne voivat in - yksi syy,
he voivat olla asettaa arvot.
Joten täällä meillä var x vastaa toiminto
ja se on ensimmäisen luokan arvo, joka voidaan siirtää
noin argumenttina.
Joten sinun ei tarvitse julistaa funktio x
ja vain käyttää x kyseisessä soveltamisalaan.
Voit siirtää arvo x missä tahansa kaikkialla, tiedätte,
argumenttina osaksi toinen toiminto
jossa voit moduuli vienti David mainittu solmussa.
Joten seuraava piste on
että toiminto on vastustaa JavaScript.
Joten voit itse määrittää ominaisuudet arvot
on toiminto ja vain hoitoon niin kuin se on esine.
Joten, kun käsittelet jQuery, tiedätte, että dollari
ja sitten ohitat valitsin siihen
ja vedota siihen funktiona.
Mutta sitten myös ovat dollarin piste AJAX.
Ja joka ei ole sellainen järkeä, jos luulet
funktion juuri olevan jotain voi vedota
tai soita.
Mutta JavaScript voit ominaisuudet määritetään toiminnot
staattisia ominaisuuksia vain x dot someProp
Kuten totesin siellä.
Seuraava kohta, joka olemme aio mennä hieman
syvyys on se, että toiminnot voidaan hoitaa
luokkiin JavaScript.
Joten on käsite Tämän uuden toimijan
joka luo uuden ilmentymän toiminto yhdessä eräänlaisen
samankaltaisten luokan rungolla joka tulee sen mukana
ja aiomme mennä siihen hieman enemmän,
sitä kutsutaan prototyyppi.
Ja se mitä on merkkeihin JavaScript hyvin ainutlaatuinen verrattuna
muille kielille jotka luokka perustuu,
JavaScript on prototyyppi perustuu.
Ja sitten juuri Pohjassa on,
toiminto voi vain kutsua selvästi kuin olemme tottuneet.
Niin se ei ole mitään uutta.
Toinen asia, joka on ainutlaatuinen on
että ryhmät ovat todella esineitä.
He eivät pidä ne ovat PHP
jossa voit vain luoda new Array.
Tämä on itse asiassa lyhenne sanomalla new Array.
Ja array on oikeastaan alaluokka objekti.
Niin, että jotain erilaisia ​​ja menen
pieneen enemmän yksityiskohtaisesti siitä.
Ja virheenkorjaus valmiuksia
JavaScript ovat todella verraton sikäli kuin olen nähnyt.
Tämä on kuvakaappaus Chrome Inspector
jonka aiomme käyttää loput
esityksen tänään.
Ja päästä tähän, juuri Siirry tiedostoon kehitystyökalut
ja avoin Chrome Inspector tai voit aivan click
ja valitse näytä elementti I mielestäni se on HTML-sivu
tai Minusta se on komento vaihtoehto J avaa tämän.
Mutta me menemme tähän ja sinä voi itse asettaa raja-arvot
kuten näytät läpi JavaScript-koodin ja lajitella
ja arvioida, mitä paikalliset muuttujat ovat, mitä arvoa
Tämän on ja se tekee tapa helpompi debug koodia.
Ja älkää - tämä ei ole pakko selain-koodia
mutta voit itse ajaa esimerkiksi
Tämän Chrome Inspector palveluksessanne koodia
joka on todella siisti, koska et voi astua rivi riviltä
koska pyyntö tulee omalle palvelimen ja katso mitä tapahtuu
ja pelata muuttujat konsoliin täällä.
Joten kuten mainitsin, JavaScript on prototyyppi-pohjainen kieli
mikä tarkoittaa, että on olemassa joukko oletusarvoista, jotka ovat tavallaan
piilotettu jokaista toimintoa
objektin piste prototyyppi omaisuutta.
Joten se on eräänlainen hash vain eri oletusarvoja
että kun vedota toimimaan uuden avainsanan,
nämä asettavat oletusarvoisesti toiminnot
, jotka ovat käytettävissä ilmentymän.
Niin että oikeastaan ​​on todellakin tehokkuutta -
se on tehokas tapa luoda esineitä muisti viisas
koska JavaScript runtime vain seurata
prototyypin esineen.
Se tavallaan osoittaa, että
kun cretae uusi luokan instanssia.
Ja voit myös jäljitellä perintö Kuten tiedetään
luokassa käyttäviä kieliä jossa sinun täytyy lajitella
samankaltaisten tämän pidennä sitä, ulottuu että voit jäljitellä
että JavaScript läpi, mitä kutsutaan
prototyyppi ketju.
Ja näemme esimerkkejä siitä.
Joten jos - jQuery plugins todellisuudessa he suosittelevat jQuery
kirjailijoiden käyttää dollarin piste fn lisätä toimintoja
jQuery kirjastoon.
Ja me todella tulee hypätä - Niin, tällä sivulla,
meillä dollari - Sisällytin jQuery.
Ja jos et dollari dot konsoli
jonka mainitsin tuo sinut läpi komennolla shift J
tai juuri menossa View, Kehittäjä, Developer Tools
ja menossa lähteet-välilehdessä.
[Inaudible Huom!]
Voi varma. Joten kun aloitin kirjoittaa muuttuja,
se automaattisesti täytetyt minulle mitä on saatavilla siellä.
Joten olen kirjoittanut dollarin ja voin katso Mielestäni Chrome on joitakin
sisäänrakennettu dollarin, dollaria ja dollari x.
Joten nyt haluan vain dollari ja laitoin piste.
Ja sitten se näyttää minulle kaikki ominaisuudet
, jotka ovat käytettävissä on jQuery objekti.
Mutta jos teen dollari dot prototyyppi,
Nyt näen kaikki menetelmät että olen tottunut käyttämään
kun minulla on dollari, valitsin ja sitten ketju pois, että,
Tiedätkö, lisätä luokan tai liittää tai hämärtää tai jollekin vastaavat.
Nuo kaikki ovat todella prototyyppi
jonka konepellin alla jQuery luo uusi esiintymä itse
ja se tavallaan piilottaa kaikki nämä tiedot sinusta.
Niin vaiheessa, että olin joten takaisin tänne
funktiolla, ne todella piilottaa prototyyppi teiltä
ja vain alias se dollariin piste fn.
Joten useimmat ihmiset todella eivät ymmärrä
että on olemassa prototyyppi konepellin alle that -
että voit hyödyntää ja lisätä toiminnallisuutta
kullekin jQuery esimerkiksi jos haluat.
Joten "uusi" toimija on todella tavallaan vaikeaa
ymmärtää aluksi.
Kun soitat toiminto "Uusi",
se on täysin erilainen tapa vaatia toiminto
kuin jos vain kutsutaan sen selvästi.
Joten "uusi" toimija luo mitä kutsutaan uusi ilmentymä
esineen tai uuden esiintymä, voit ajatella
esineen luokkana.
Ja kun näin tapahtuu, arvo Tämän jotka voivat olla tuttuja
kanssa alkaen jQuery, he tavallaan määrittää tämän
siihen, mikä on kätevää tuolloin.
Ne yleensä aseta se nykyinen DOM solmuun, että olet
, kun olet menossa läpi kuin kpl tai jotain sellaista.
He - Tämä arvo on tarkoitus olla arvoa esimerkiksi
että olet luotu "uusi", joka sisältää kaiken
prototyyppi ketjun kaikkien menetelmistä, jotka haluat löytää
prototyypp ominaisuuksia.
Niin se riippuu siitä, miten toiminto on nimeltään,
mikä arvo tällä on.
Ja se on todella hämmentävää jos olet uusi JavaScript.
Mutta jokainen toiminto, joka kutsutaan on - on tässä arvossa.
Joten vaikka et ole luonut uusi esiintymä jotain,
että tämä oletetaan maailmanlaajuisiksi.
Tai voit soittaa toiminto käyttäen puhelun menetelmää
joissa sovelletaan menetelmää JavaScript.
Voit toiminto ja täsmentää, mitä tällä tarkoitetaan.
Joten voit tehdä sen dynaaminen, joka on todella voimakas
mutta voit myös tehdä asioita, jotka voivat olla harhaanjohtavia
ja hämmentävää muut kehittäjät
jos he eivät käytä siihen.
Ja jQuery, väitän tekee siitä entistä monimutkaisemman
tekemällä se kätevää ja sen asettaminen
nykyiseen DOM solmu.
Mutta yksinkertainen sääntö on muistaa mikä arvo tällä on
kun etsit
klo toiminnallinen puhelu on mitä on jäljellä piste.
Joten jos sinulla on esine
ja se on jotain dot jotain on tehtävä
että soitat sitten Ensimmäinen arvo on mitä arvo
tästä on.
Joten tässä on koodiesimerkki
jos Luon uusi esine kirjaimellinen
joka on vain esine luotu aaltosulkumerkkien
ja Asetan nimensä Bob
ja sitten minulla on sayName menetelmänä, joka -
joten sisälle sayName jos en x dot sayName,
arvo tällä on yhtä x: koska vasen
dot on x. Joten jos Kutsun sitä x dot sayName,
se sanoisi Hei Bob.
Ja sitten toinen esimerkki
mihin olen itse määrittämällä x piste sayName, toiminto
muuttujan Y, joka kuten mainitsin
JavaScript sinua voi määrittää toimintoja
muuttujiin milloin haluat, se on todella joustava, että tapa,
mutta nyt kun soitan Y, se menetti yhteydessä x.
Joten tämä on nyt maailmanlaajuinen tai jos olet tiukka tilassa,
Mielestäni se on null tai määrittelemätön.
Mutta - niin y ei ole mitä olet odottaa tässä jos etsit
klo x ja aiot soittaa sayName,
olet odottanut tätä nimeä on tarkoitus olla Bob.
Mutta jos olet vetänyt sen pois objekti ja kutsui sitä
itse, tämä on nyt maailmanlaajuinen.
Ja se mitä olin viittaavat kun näet dollarin piste tämän,
eivät useinkaan ajattele mitä todella tapahtuu.
Mutta jQuery tavallaan on niiden oma domain-tiettyä kieltä
ratkaisemaan tätä ja se ei ole mitä olet tottunut
to JavaScript.
Ja minä huomauttaa asiasta koska se on todella tärkeää
kirjoittamiseen hyvin jäsennelty olio-koodi
JavaScript todella on hyvä ymmärrys ja käsitys
miten tämä toimii ja miten objektimalli
ja miten uusi operaattori toimii.
Muuten, sinun lopulta kanssa jQuery spagetti
jossa kaikki on tavallaan on levällään
ja ainoastaan ​​kauppaa DOM.
Jos voit todella kirjoittaa JavaScript
jäsennellymmällä muotia, se tekee siitä paljon helpompaa
työskennellä, lajitella erillisten huolenaiheet
kaupankäyntitoiminnoista kanssa päivittäminen DOM ja käsittelee
todellinen logiikkaa ja koodin.
Joten katsomaan muutamia esimerkkejä noin että.
Joten minulla on joitakin esimerkkejä tästä.
Joten tämä on vain yksinkertainen esimerkki käyttää JavaScript Object
ja lisäämällä muutamia toimintoja sen ja luomalla sitten lajitella
samankaltaisten pienoiskoossa sovellus.
Joten on hyvin yksinkertainen todella.
Ainoa asia, että se on ensin se kysyy nimesi.
Niin minä sanon Tim ja sitten voi muuttaa nimesi Bob.
Ja että tämä kaikki sovellus ei.
Mutta mitä haluaisin huomauttaa out on, miten se toimii.
Joten minulla on tämä nimi generaattori esine, jonka on alun menetelmä
joka kysyy käyttäjältä heidän nimensä
vain kutsumalla tätä askForName
joka täällä se ei kuiskata
jos nimeä ei määritetty sitten se kysyy sitä uudelleen
soittamalla tämän askForName.
Ja sitten kun se saa nimen, se kutsuu tämän päivityksen nimi.
Joten tämä asettaa sitten käyttäjän nimi H1 tag.
Ja jos nimi ei ole asetettu, se heittää virheen.
[Inaudible Huom!]
Voi varma. Joten se asettaa käyttäjän nimi H1 tag
soittamalla setDisplayName joka asettaa HTML
vuonna JS nimi astiaan ja Olen prefixing kaikki minun HTML
JS valitsimet vain siksi se on hyvä tapa päästä
osaksi vain tehdä se ei ole niin sekava
kun käytät valitsimet, kuten ID: n tai luokat
sekä tyyliä ja logiikkaa
in your JavaScript etupään sovelluksia.
Koska jos olet eri ihmisryhmiä työskentelevät
on koodareiden ja sinä on valitsin siellä
että suunnittelija päättää muututtava, koska Se on -
ei näytä hyvältä, joten he haluavat laittaa uuden luokan ja ottaa
ulos sinun ja olet riippuvainen sitä JavaScript tarkoituksiin,
sitten koodi taukoja.
On hyvä etuliite ja lajitella
samankaltaisten namespace lähes JavaScript liittyvät luokat
tai attribuutteja etuliite JS.
Joten tämä on melko yksinkertainen ja näet
kaikissa näissä tapauksissa olen soittamalla palauta lopussa.
Joten tämä on hyvä tapa päästä,
antaa sinulle sen epäkelpoa arvoa.
Vuonna askForName En ole koska se on järkevää
että saisit nimi takaisin.
Mutta mitä, jonka avulla voit tehdä niin
jos palaat tämän päivityksen nimi, se on palaamassa arvon
ja setDisplayName joka on palauttamalla arvo tämän.
Ja jonka avulla voit lajitella Ketjun kuin olet tottunut
to jQuery palauttamalla arvo tämän joka kerta.
Tämä viittaa nykyinen esineet
joten tätä voidaan kutsua dot askForName dot setDisplayName
ja se pitää arvo tämän ja voit
olla mukava ketju siellä.
Ja sitten - niin Tässä toisessa esimerkissä.
[Tauko]
Selvä.
OK. Joten mennään eteenpäin ja avata konsoli
ja mene minun lähteet-välilehdessä.
Me pop tätä todella.
Joten Chrome kehittäjä työkaluja, jotka mainitsin,
on tämä pala oikealla ja -
näet tämän stop-merkin vaikka oletuksena, se on musta.
Mutta kun hiiri sen päälle, se sanoo "Älä keskeytä poikkeuksia.
Klikkaa tauko on kaikki poikkeukset. "
Ja kun klikkaat sitä uudelleen, se muuttuu siniseksi.
Ja nyt tahansa, että on virhe heitetään
oman JavaScript-koodin, se pysähdy pisteeseen ja voit
arvioida, mitä on tekeillä.
Joten - Ja se on todella hyödyllinen Konsepti on noin huomauttaa.
Ja sitten jos valitset uudelleen, se muuttuu violetiksi
ja tämä on yleensä mitä pidän sitä sisään
Se vain taukoja koodi kun on poikkeus
että ei ole saatu kiinni.
Niin paljon kertaa jQuery Esimerkiksi he eivät yritä saaliit
testata, onko vai ei selainta on jonkinlainen kyky
ja jatkaa sieltä.
Tämä on vain silloin, kun on virhe
joka ei ole kiinni yrittää saalis.
Joten yrittää ja lähetä nimi, joka on tyhjä.
Jotta voin nähdä, että koodi on nyt pysähtynyt
at updateName menetelmä ja voin hiiri nimet
ja nähdä se on tyhjä ja tyhjä.
Sieltä se on yhtä tyhjän.
Joten jos ei nimeä heittää uuden virhe ja nyt voin askel taaksepäin
kautta toiminto sarake ja sanoa, "OK,
mistä tämä tuli, "ja mitä arvoa asiakas on.
Joten se on askForName menetelmä,
setDisplayName alku ja updateName.
Ja tämä on vain todella hyödyllinen Näin voit nähdä kaikki
muuttujat, jotka ovat käytettävissä että soveltamisala sekä
kuten sulkeminen muuttujia, niin mitään, joka päättyi
haltuunsa tätä toimintoa.
Ja jotta voin nähdä, että - mitä arvo asiakkaalle on
ja mikä arvo tällä on.
Joten tämä koska olemme jQuery on yhtä
nykyiseen DOM elementti.
Mutta se on todella hyödyllinen debug-koodi
rikkoa virheistä näin.
Toinen piirre Chrome Inspector on
että missään vaiheessa voit klikkaa eri linjojen
rivillä ja se tulee tauko paikoissa
jos olet asettaa raja-arvot he kutsutaan.
Joten jos klikkaan, rivi näkyy sinisenä.
Joten haluan jatkaa suorittamisen täällä, OK, joka mursi.
Ja nyt Laitetaan nimi Alice ja paina Lähetä.
Joten nyt voin nähdä jopa ennen kuin se sai pisteen
päivittää kaiken, se on nyt pysähtynyt täällä, jotta voin nähdä
että minun tämä nimi on Alice ja sitten voin jatkaa -
haluan lataa sivu.
Okei, joten nyt se on alkaen uutta alkua,
se on pysähtynyt tähän line ja näen
että nimi on tällä hetkellä määrittelemätön.
askForName on joka toimiakseen se on, niin se on myös usein hyödyllistä
jos sinulla on toimintoja, jotka ovat tulevat eri tiedostoja
tai eri paikoissa koodia, voit nähdä, missä se on,
ja sitten hypätä siihen, se korostaa sitä.
Niin hyvä saada tapana käyttää testausvälineitä
jotka eivät ole vain lohduttaa dot loki.
OK, joten sallikaa katso toinen esimerkki
joka tekee enemmän käyttöä prototyyppejä olin viitattu.
Joten tässä esimerkissä,
Luomme uutta toiminto nimeltään CS
ja tämä on pääomitettu joten yleissopimus standardin
JavaScript on, jos toiminto on tarkoitus käyttää
kuten rakentaja, toisin
vain normaali toiminnon, voit hyödyntää sitä.
Joten minulla on pääomaa CS ja tämän vie muuttuja Kurssikoodi
ja courseTitle joka Asetin tämän Kurssikoodi,
Tämän courseTitle rakentaja.
Ja sitten olen myös asettaa opiskelijat ja esitelmiä tyhjät taulukot.
Joten syy, että sinun -
OK, joten prototyyppi ominaisuudet olivat sitten määritelty
tänne kanssa - niin template on vain yksinkertainen alaviiva
malli, alaviiva malli on tapa, että voit -
samanlainen malleja että Daavid oli maininnut
palvelimelle, voit vain kirjoittaa komentosarjatunnus
joka ei ole JavaScript kirjoitus mutta teksti HTML
ja mitä olen tekemässä jQuery on -
se ei pidä näitä auki, joo, siellä mennään.
JQuery, se alkaa HTML arvo kyseisen mallin
ja tämän jälkeen ajaa se läpi korostaa apuohjelma kirjastot
mallin moottori.
Joten asiakirjat sillä se on täällä
alle apuohjelma malli
mutta periaatteessa voit lukea hieman enemmän siitä.
Mutta se arvioi tämän merkkijono ja muuntaa sen funktio
josta voimme sitten siirtää tiedot osaksi ja se soittaa dynaamisesti.
Seuraavat kaksi menetelmiä minulla on ovat addStudent ja addLecture.
Nämä vain lisää ne sisäiset ryhmät, jotka olen asettanut
rakentaja ja sitten tehdä menetelmällä.
Joten, nyt luoda uusi Esimerkiksi CS kutsutaan 164
joka on tämän kurssin numero 164 ja otsikko.
Ja sitten CS50, joka on CS50 ja intro CS1
ja sitten lisätään muutama luennot opiskelijoille
ja sitten soittaa CS50 tehdä.
Ja jos juoksen koodia, niin Teen että Eval.
Et koskaan halua käyttää Eval, mutta olen vain eräänlainen
ryhtyä kaikkiin JavaScript joka on täällä
ja suorittamalla sen lennossa.
Se tekee tähän mallineeseen näitä uusia tapauksia
CS luokka, joka on ominaisuuksia, joten olemme menneet
kautta ja tehty addLecture ja addStudent kullekin.
Ja kuten mainitsin koska olen sen palauttamista,
Itse asiassa voin ketju nämä addLecture ja addStudent puhelut
ja se tulee toimii yhtä hyvin.
Muiden ominaisuus JavaScript että on vielä hyödyllisempää
palvelimen puolella, jossa todella kulloinkin
jos hakemus saa isompi tiedä missä olet
ja se on vaikeampi määrittää Näiden yksittäisten raja-arvot
että mainitsin Chrome Inspector on
käyttää debuggeri avainsanan.
Joten se on vain D-E-B-U-G-G-E-R.
Ja kun laittaa debuggeri Hakusanalla koodissa
ja sinulla on - siellä mennään, kaksi Gs.
Kun laitat debuggeri Hakusanalla koodissa
ja näytät debuggeri
kuten Chrome Tarkastaja täällä
tai palvelimen puolella Chrome Tarkastaja, se kertoo JavaScript
lopettaa teloituksen että linja koodin ja sitten sen avulla voit
vaiheeseen läpi loput toimeenpanomaksun koodien.
Joten jos en valitse Suorita koodi täällä, se on nyt pysäyttää
Tämän debuggeri linjaa ja voin ks. OK, tässä on arvo CS50
ja se sai kurssin otsikko, course ID,
se sai luentoja, opiskelijoista.
Ja sitten voin astua koko addLecture,
Näen se työntää edelleen näitä luentoja,
hiiri, että "Hello World".
Voin oikeastaan konsoli tehdä tämän niin tämä on asetettu
nykyinen objekti että olet tuumaa
Tämä luento on "Hello World".
Ja pitää porrastus kautta niin paljon kuin haluan.
Jos en halua astua
osaksi funktiokutsu koska En tiedä mitä se on menossa
tehdä menee addLecture, siellä tätä painiketta täällä
jossa sanotaan "Step tulevina funktiokutsua, "ja niin voin mennä
siihen pisteeseen, missä minä olen ehkä miettinyt jotain.
Kuten esimerkiksi 164 tehdä.
Joten tässä vaiheessa, se on aiotaan suoritettu.
Näen tämän mallin on koottu malli.
Näen tässä vaiheessa I tulee olla kaksi opiskelijaa
ja kaksi luentoa.
Ja sitten on prototyyppi ketju, joka Viittasin.
Joten oletus, joka tulee yhdessä vain esine
JavaScript yleensä,
Sen mukana tulee kaksi merkkijono arvo rakentaja.
Ja sitten ne, jotka Olen lisännyt itseeni
kanssa addLecture, addStudent ja sitten ominaisuudet
, jotka ovat ainutlaatuisia tälle esimerkiksi luokan
koska se oli vedonnut kanssa uusi avainsana.
Tehdäänpä vain yksi lisää esimerkiksi tästä
ja sitten me askel jossain enemmän mielenkiintoisia asioita
palvelimen puolella.
Joten mene eteenpäin ja avata tämä viimeinen esimerkki, joka on -
Katsotaan, missä on koodi?
En tiedä, missä tämä meni.
OK, no, voisimme hypätä yli tämä koodi sitten itse -
Voi pitää kiinni, luulen kaipasin tyylisivu koodia.
OK, joten tehkäämme Tässä hieman isompi.
Tässä esimerkissä näytän hieman enemmän asetusta
up prototyyppi ketju,
joten perustamalla perintö kanssa JavaScript.
Joten tässä tapauksessa, meillä on luettelo, joka on menossa
oletettavasti säilyttää useita kursseja.
Ja niin luettelo on addCourse menetelmiä.
Joten se tarkistaa onko kurssi joka hyväksyttiin vuonna on esimerkiksi
tietenkin myös vedota kanssa uusi avainsana.
Joten jos yrität lähettää
jotain erilaista, se huutaa sinulle.
Renderöinti menetelmä, joka tehdä kunkin kursseja
laatimalla sen mallista alle.
Ja meillä on tietysti joihin tutustuminen
tässä tapauksessa perustaa luokan yksittäisten osasto kursseja.
Ja sen sijaan että kukin
Kurssin piste prototyyppi dot menetelmä
tai majoituspaikkaan ulottuvat auttaja alaviiva kirjastossa
lajitella puhelun laajentaa Tämä prototyyppi kaikki
Näiden ominaisuuksien, jotka on hyödyllistä, hieman helpompi lukea.
Ja sitten alas täällä tekemässä mitä kutsutaan asettamalla
up prototyyppi ketju.
Joten tämä on todella vähän hankala ihmisille ensimmäisessä
ja jopa vielä tehneet tämän jonkin aikaa, se on tavallaan kova
kääri pään ympärille.
Mutta älä anna sen pelästyttää sinua.
Joten olen perustamassa uutta -
kokonaan uusi luokka vastustaa täällä, CS.
Ja rakentaja,
Sanon kurssi soveltaa tätä argumentteja.
Joten väitteet on erityinen arvo kai voisi kutsua
JavaScript, Hakusanalla jossa on kaikki
ja kaiken, mitä välitetään on perustelut
että toiminto on käytettävissä kanssa argumentteja soittaa,
kanssa argumentteja avainsanan.
Niin soitan kurssin dot sovelletaan,
tämä on nykyisessä tilanteessa jolla CS on kutsuttu.
Kun siis vedota sitä uusilla se on - se on arvo CS.
Ja minä sanon Kutsun tätä Tietenkin menetelmä täällä.
Voi anteeksi - kutsuvat tätä Tietenkin menetelmä täällä
mutta asettaa arvo tämän olla mitä tahansa arvoa
Tämän on täällä.
Joten sovelletaan avainsanan avulla voit tavallaan muuttaa valtion
Tämän joka on, miten jQuery saa lajitella kytkimen
tämä on sinulle olet menossa läpi
ja tehdä DOM elementtejä sen sijaan, että jQuery objekti.
Joten nyt aion asettaa lyhytaikaisesti
joka tarttuu prototyyppi tietenkin.
Ja tavallaan asettaa sen sen prototyyppi
ja aseta prototyyppi on CS-toiminto objektin
jotta uusi esiintymä että.
Joten periaatteessa olen sanomalla sen sijaan -
jos olen täällä tehnyt CS dot Prototyyppi on yhtä kuin uusi kurssi.
Silloin olisi soittaa kaiken
Tässä rakentaja toimintoa,
mitä en tahdo välttämättä halusi.
Joten kaikki mitä teen on tavallaan luoda lähes
kuin korvike toiminto, joka on kursseja prototyyppi
sitä ja tavallaan jäljittelevät prototyyppi -
tietenkin, mutta tekemättä kaiken rakentaja
ja asettaa että prototyyppi.
Ja sitten olen vain lisäämällä niin osasto
tässä tapauksessa on tietokone Tiede CS objektin.
Ja sitten minulla on eräänlainen silta versio näin.
Se ei toimi IE9.
Joten siksi halusin näyttää tavallaan, miten -
mitä tämä tekee konepellin alle.
Mutta voit asettaa sen ylös samalla tavalla
jossa Econ vastaa toiminto tietenkään koske näitä väitteitä
ja sitten sanoa Econ dot prototyyppi vastaa esine dot CreateCourse
dot prototyyppi.
Joten se luo uuden objektin joka on vain prototyyppi
kurssille ja sitten aseta osasto on.
Joten nyt mennään vain asettaa debuggeri täällä ja valitse Suorita.
Siellä mennään.
Joten CS164 voimme nähdä prototyyppi ketju meillä
ominaisuuksia, jotka olivat asetettu rakentaja.
Joten arvot näistä, jotka oli asetettu ja sitten prototyyppi ketju
CS esineen, jota se oli osasto Computer Science asetettu.
Ja sitten taustalla prototyyppi ketju,
meillä on sitten kaikki menetelmät ja ominaisuudet
, jotka ovat ainutlaatuisia Kurssin objekti.
Ja sitten meillä on base esineitä.
Niin tuollainen nopea Esimerkiksi prototyyppi-ketjua.
Ja kuten voitte nähdä täällä, siellä ovat kaksi arvoa per osasto.
Joten on osasto tietojenkäsittelytiede
ja sitten osasto ei ole lueteltu josta minä sanoin
oletusarvoksi täällä.
Joten prototyyppi ketju on oikeastaan ​​vain yksittäin
linkkilista.
Ja kun se yrittää löytää omaisuutta,
se tulee alkavat huipputason arvo.
Joten mitä määritellään rakentaja toiminto
ja sitten tavallaan mennä alas prototyyppi ketju sieltä.
Niin, koska se katsoi, niin -
jos täällä, sanon CS50 dot osasto,
se tulee sanoa Computer Science.
Mutta jos sanon var -
[Tauko]
Mutta jos sanon humanististen vastaa uusi kurssi
ja sitten sanon humanististen dot osasto,
Nähdään osastolla ei ole lueteltu koska se meni ensin -
Voin katsoa prototyyppi ketju täällä todella.
Niin se meni ensin kurssin vastustaa, ja näki siellä mitään
prototyyppi ketjun tällä tasolla osasto
tai osaston arvot niin Sitten se hyppää seuraavalle tasolle,
kurssin ja ulkonäkö siellä esiin ja löytää sen.
Niin se vain tavallaan kuin menee alas ylhäältä alas
ja se on tavallaan jotain, joka on ainutlaatuinen
noin JavaScript on että voit muuttaa mitä tahansa
Näiden arvojen tahansa.
Niin rakentajalle tai yksittäinen menetelmä, objektin
jos haluan asettaa tämän osasto jotain uutta,
tai jos en edes halua asettaa Minkä tahansa näistä toiminnoista
, jotka ovat jo olemassa
jotain uutta, Olen vapaa tekemään niin.
Joten nyt minulla on CS50 dot addLecture, näyttää että.
Ja jos haluan asettaa sen CS50 addLecture juuri vastaa
tyhjiä toiminto.
Niin nyt näen sen vain täysin muuttunut
joka et pysty tehdä toisen kielillä
jossa on tiukemmat luokka perustuu perintö
ja kaikki on tavallaan perustaa.
JavaScript on hyvin, hyvin joustava suhteen, että.
OK, nyt hypätä takaisin diat.
Joten jos esimerkiksi olet olisi aina haluan toiminto
on erityisen tämä arvo sille asetetut.
Voit soittaa toiminto dot sitoa
ja valita, mitä arvoa Tämän pitäisi olla.
Voit ajatella sitä -
"Yritän ajatella hyvä reaalimaailman esimerkki, mutta "
jos haluat suojata koodin
vastaan ​​joku mahdollisesti kutsumalla sitä arvoa
että ei olisi tämä.
Kuten esimerkiksi AJAX soittopyyntöjä kuten liikaa tai virhe.
Nämä eivät yleensä kutsutaan
hyvän semanttinen arvo tämän.
Ja et pidä, "OK, olen aina halua tästä arvoa
Kurssin esineen että olen työskennellyt.
Tai näkemys, joka olen kanssa minun koodi
joka edustaa tätä DOM solmu, voit asettaa -
voit sitoa yhteydessä tähän ja sitten kun sitä kutsutaan myöhemmin
by jQuery ja sillä ei ole hyvä arvo tämän se tulee kiinni
mitä te jota rajoittavat sitä.
Sitten on funktiokutsuna olivat voit määrittää yhteydessä
ja määritä tahansa muuttuja määrä argumentteja.
Ja sitten on toiminto sovelletaan jonka voit siirtää
yhteydessä ja sitten joko array
tai väitteitä väittää, ettei Mainitsin kuten näet siellä.
Ja väitteitä millään toiminto, joka soitat,
voit vain kirjoittaa Sana "argumentteja"
ja se tulee kaikki argumentteja.
Se on "pituus" omaisuus
joka on, miten voi argumenteilla todella välitetään, että menetelmiä
koska JavaScript voit lajitella puhelun
Vaihtuva numerot argumentteja.
Se on hyödyllinen sanomalla jos tämä oli yksi argumentti,
sitten seuraa tätä koodia polkua.
Jos se oli kaksi, saatat haluavat seurata toisella tavalla.
Sen avulla voit olla todella dynaaminen API oman menetelmiä.
Voit ajatella että jQuery
kuten silloin, kun olet dollarin piste tai sitoa.
Ja se tavallaan tekee eri asioita
siitä laitat yhden argumentti tai kaksi tai kolme
tai aloittaa sen funktio.
Se käyttää väitteitä omaisuus
ja perustelut pituus paljon tapauksia
on tämä taika toiminnallisuus tapahtuu.
Asioita ei voi tehdä argumentit on käyttää sitä vain
oletusarvoisesti array.
Joten voit sanoa argumentteja kolme ja aseta se jotain
kuten voitte käyttää array tehtävän.
Voit käyttää - paljon ja alaviiva menetelmien
joko kokoelmiin tai työstämiseen paneelit,
voit välittää argumentteja ja se tulee ymmärtää
että se on perustelut objekti ja lajitella
ja hoitaa sen puolestasi.
Mutta jos haluat käyttää argumentteja, jotka siirretään
kautta toimivat array,
voit käyttää alaviivaa dot kaksi array.
Yksi numero apuohjelma toiminnot
jotka ovat rakentaa alaviiva.