Javascript: call (), apply () og bind ()
call (), apply () og bind () — a new hope
frem til nå har vi behandlet funksjoner som objekter som består av et navn (valgfritt, kan også være en anonym funksjon) og koden den utfører når den påberopes. Men det er ikke hele sannheten. Som en sannhetselskende person må jeg fortelle deg at en funksjon faktisk ser nærmere på følgende bilde:
hva er dette??????? Ikke bekymre deg! Jeg vil na ga gjennom disse 3 lignende metodene som vises pa hver funksjon med eksempler. Gled dere!
bind ()
de offisielle dokumentene sier: bind()
– metoden oppretter en ny funksjon som, når den kalles, har sin this
søkeord satt til den angitte verdien. (Det snakker faktisk om enda flere ting, men vi forlater det for en annen gang :))
dette er ekstremt kraftig. Det lar oss eksplisitt definere verdien av this
når du ringer en funksjon. La oss se på cooooode:
la oss bryte det ned. NÅR vi brukerbind()
metode:
- js-motoren oppretter en ny
pokemonName
forekomst og bindingpokemon
som sinthis
variabel. Det er viktig å forstå at det kopierer pokemonName-funksjonen. - etter å ha opprettet en kopi av
pokemonName
funksjonen kan den ringelogPokemon()
, selv om det ikke var på pokemon-objektet i utgangspunktet. Det vil nå gjenkjenne sine egenskaper (Pika Og Chu) og dens metoder. og det kule er, etter at vi har bundet () en verdi, kan vi bruke funksjonen akkurat som det var en annen normal funksjon. Vi kan til og med oppdatere funksjonen for å godta parametere, og sende dem slik:
samtale(), bruk ()
de offisielle dokumentene for samtale() sier:
call()
metoden kaller en funksjon med en gitt funksjon.this
verdi og argumenter gitt individuelt.Hva det betyr, er at vi kan kalle noen funksjon, og eksplisitt angi hva
this
skal referere innenfor anropsfunksjonen. Virkelig likbind()
metoden! Dette kan definitivt redde oss fra å skrive hacky-kode (selv om vi alle fortsatt er hackerzzz).de viktigste forskjellene mellom
bind()
ogcall()
er atcall()
metode:- Aksepterer også flere parametere
- Utfører funksjonen den ble tilkalt med en gang.
call()
– metoden lager ikke en kopi av funksjonen den kalles på.
call()
ogapply()
tjener nøyaktig samme formål. Den eneste forskjellen mellom hvordan de fungerer er at call () forventer at alle parametere skal sendes inn individuelt, mens apply () forventer en rekke av alle våre parametere. Eksempel:disse innebygde metodene, som finnes på hver js-funksjon, kan være svært nyttige. Selv om du ikke ender med å bruke dem i din daglige programmering, vil du fortsatt løpe inn i det ofte når du leser andre folks kode.
hvis du har noen spørsmål, som alltid, nå ut Via Instagram ❤
Leave a Reply