Articles

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:

Ved hjelp av bind() method on line 14.

la oss bryte det ned. NÅR vi brukerbind() metode:

  1. js-motoren oppretter en nypokemonName forekomst og bindingpokemon som sinthis variabel. Det er viktig å forstå at det kopierer pokemonName-funksjonen.
  2. etter å ha opprettet en kopi avpokemonNamefunksjonen kan den ringe logPokemon(), 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.thisverdi og argumenter gitt individuelt.

    Hva det betyr, er at vi kan kalle noen funksjon, og eksplisitt angi hva this skal referere innenfor anropsfunksjonen. Virkelig lik bind() metoden! Dette kan definitivt redde oss fra å skrive hacky-kode (selv om vi alle fortsatt er hackerzzz).

    de viktigste forskjellene mellom bind() og call() er atcall() metode:

    1. Aksepterer også flere parametere
    2. Utfører funksjonen den ble tilkalt med en gang.
    3. 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:

    Merknad som gjelder godtar og matrise, og anrop forventer hver param individuelt.

    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 ❤