I metodi Call() e apply() in Javascript

I metodi Call() e apply() in Javascript

In JavaScript, i metodi call() e apply() vengono utilizzati per invocare una funzione con un argomento opzionale e un contesto specifico "this", in pratica Call e Apply mettono in collegamento le proprietà di un oggetto per una funzione. Entrambi i metodi sono abbastanza simili, con una piccola differenza..

  • Nel metodo call(), gli argomenti vengono passati individualmente.
  • Il metodo apply() accetta gli argomenti sotto forma di array.

indice

Sintassi: I metodi Call() e Apply()

Il Metodo apply() (posso essere usati gli array)

const oggetto = { fullName: function(citta, nazione) { return this.cosa + " " + this.qualita + "," + citta + "," + nazione; } } const oggetto1 = { cosa:"pellami", qualita: "ottimi" } console.log(oggetto.fullName.apply(oggetto1, ["Solofra", "Italia"])); //output : "pellami ottimi,Solofra,Italia"

Il Metodo apply() (posso essere usati gli array)

const oggetto = { oggettointero: function(citta, nazione) { return this.cosa + " " + this.qualita + " " + citta + " " + nazione; } } const oggetto1 = { cosa:"pellami", qualita: "ottimi" } const oggetto2 = { cosa:"pellami", qualita: "pessimi" } console.log(oggetto.oggettointero.call(oggetto2,"Solofra","Italia")); //output: pellami pessimi Solofra Italia

Esempio di Metodo call() e apply() in Javascript

Mario acquista una villetta che costa 325560€ versa subito 135000€ e il resto viene diviso in 96 Rate, quanto dovrà pagare Mario?.

testo di esempio .testo di esempio .testo di esempio .testo di esempio .testo di esempio .

testo di esempio .testo di esempio .testo di esempio .testo di esempio .testo di esempio .

testo di esempio .testo di esempio .testo di esempio .testo di esempio .testo di esempio .

Codice della lezione: Funzioni in Javascript

// Il metodo Call » call mette in collegamento (un singolo valore) const spedizioni = { costoSpedizioni: function(citta, nazione) { return this.costofisso + this.costovariabile + " per " + citta + " in " + nazione; } }; const spedizione1 = { costofisso:10, costovariabile:50 }; const spedizione2 = { costofisso:10, costovariabile:90 }; document.getElementById("txtID1").innerHtml = spedizioni.costoSpedizioni.call(spedizione1,"Salerno","Italia"); document.getElementById("txtID1").innerHtml = spedizioni.costoSpedizioni.call(spedizione2,"Milano","Italia"); // Il metodo Apply » apply mette in collegamento (più valori con gli [array]) const prezzo = { prezzoMaggiorato: function(originalPrice, maggiorazione) { return "A causa degli aumenti della benzina il prezzo del prodotto è di " + ( originalPrice + maggiorazione ) + "€ , per " + this.citta + " in " + this.nazione; } } const zona1 = { citta:"Roma", nazione: "Italia" } const zona2 = { citta:"Chania", nazione: "Grecia" } document.getElementById("txtID3").innerHtml = prezzo.prezzoMaggiorato.apply(zona1, [50,10]); document.getElementById("txtID4").innerHtml = prezzo.prezzoMaggiorato.apply(zona2, [50,80]);

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2022
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram