Esercitazione JS

JS CASA JS Introduzione JS Dove si va Uscita JS Dichiarazioni JS Sintassi JS Commenti JS Variabili JS JS Let JS Cost Operatori JS JS aritmetica Assegnazione JS Tipi di dati JS Funzioni JS Oggetti JS Eventi JS Corde JS Metodi di stringa JS Ricerca di stringhe JS Modelli di stringhe JS Numeri JS Metodi numerici JS Matrici JS Metodi array JS Ordinamento matrice JS Iterazione dell'array JS Cost. array JS Date JS Formati data JS Metodi di acquisizione della data JS Metodi di impostazione della data JS JS matematica JS Casuale JS booleani Confronti JS Condizioni JS JS Switch Ciclo JS per JS Loop per In Ciclo JS per di JS Loop mentre JS Break Iterabili JS Insiemi JS Mappe JS Tipo JS Conversione del tipo JS JS bit a bit JS RegExp Errori JS Ambito JS JS sollevamento Modalità rigorosa JS JS questa parola chiave Funzione freccia JS Classi JS JS JSON Debug JS Guida allo stile JS Migliori Pratiche JS Errori di JS Prestazioni JS Parole riservate JS

Versioni JS

Versioni JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Storia di JS

Oggetti JS

Definizioni di oggetti Proprietà dell'oggetto Metodi dell'oggetto Visualizzazione di oggetti Accessori per oggetti Costruttori di oggetti Prototipi di oggetti Iterabili di oggetti Insiemi di oggetti Mappe degli oggetti Riferimento all'oggetto

Funzioni JS

Definizioni delle funzioni Parametri di funzione Invocazione di funzione Chiamata di funzione Funzione Applica Chiusure di funzioni

Classi JS

Introduzione alla classe Eredità di classe Classe statica

JS Async

Richiamate JS JS asincrono JS Promesse JS Async/Attendere

JS HTML DOM

DOM Introduzione Metodi DOM Documento DOM Elementi DOM DOM HTML Moduli DOM DOM CSS Animazioni DOM Eventi DOM Ascoltatore di eventi DOM Navigazione DOM Nodi DOM Collezioni DOM Elenchi di nodi DOM

Distinta base del browser JS

Finestra JS Schermo JS Posizione JS Storia di JS Navigatore JS Avviso popup JS JS tempismo Biscotti JS

API Web JS

Introduzione all'API Web API dei moduli Web API Cronologia web API di archiviazione Web API Web Worker API di recupero Web API di geolocalizzazione web

JS AJAX

Introduzione all'Ajax AJAX XMLHttp Richiesta AJAX Risposta dell'AJAX File XML AJAX AJAX PHP AJAX ASP Database AJAX Applicazioni AJAX Esempi AJAX

JS JSON

Introduzione JSON Sintassi JSON JSON contro XML Tipi di dati JSON Analisi JSON JSON Stringify Oggetti JSON Matrici JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Selettori jQuery jQuery HTML jQuery CSS jQuery DOM

Grafica JS

Grafica JS Tela JS JS Plotly JS Chart.js Grafico di Google JS JS D3.js

Esempi JS

Esempi JS JS HTML DOM Input HTML JS Oggetti HTML JS Eventi HTML JS Browser JS Editore JS Esercizi JS Quiz J.S Certificato JS

Riferimenti JS

Oggetti JavaScript Oggetti HTML DOM


Invocazione della funzione JavaScript


Il codice all'interno di un JavaScript functionverrà eseguito quando "qualcosa" lo invoca.


Invocare una funzione JavaScript

Il codice all'interno di una funzione non viene eseguito quando la funzione è definita .

Il codice all'interno di una funzione viene eseguito quando la funzione viene richiamata .

È comune usare il termine " chiamare una funzione " invece di " richiamare una funzione ".

È anche comune dire "richiama una funzione", "avvia una funzione" o "esegui una funzione".

In questo tutorial useremo invoke , perché una funzione JavaScript può essere invocata senza essere chiamata.


Invocare una funzione come una funzione

Esempio

function myFunction(a, b) {
  return a * b;
}
myFunction(10, 2);           // Will return 20

La funzione sopra non appartiene a nessun oggetto. Ma in JavaScript c'è sempre un oggetto globale predefinito.

In HTML l'oggetto globale predefinito è la pagina HTML stessa, quindi la funzione sopra "appartiene" alla pagina HTML.

In un browser l'oggetto della pagina è la finestra del browser. La funzione sopra diventa automaticamente una funzione finestra.

myFunction() e window.myFunction() sono la stessa funzione:

Esempio

function myFunction(a, b) {
  return a * b;
}
window.myFunction(10, 2);    // Will also return 20

Questo è un modo comune per invocare una funzione JavaScript, ma non è una pratica molto buona.
Le variabili globali, i metodi o le funzioni possono creare facilmente conflitti di nome e bug nell'oggetto globale.



La parola chiave questa

In JavaScript, la cosa chiamata this, è l'oggetto che "possiede" il codice corrente.

Il valore di this, quando utilizzato in una funzione, è l'oggetto che "proprietario" della funzione.

Nota che thisnon è una variabile. È una parola chiave. Non è possibile modificare il valore di this.

Suggerimento: leggi di più sulla thisparola chiave in JS this Keyword .


L'oggetto globale

Quando una funzione viene chiamata senza un oggetto proprietario, il valore di this diventa l'oggetto globale.

In un browser web l'oggetto globale è la finestra del browser.

Questo esempio restituisce l'oggetto finestra come valore di this:

Esempio

let x = myFunction();            // x will be the window object

function myFunction() {
  return this;
}

Invocare una funzione come funzione globale, fa sì che il valore di questo sia l'oggetto globale.
L'utilizzo dell'oggetto window come variabile può facilmente causare il crash del programma.


Invocare una funzione come metodo

In JavaScript puoi definire funzioni come metodi oggetto.

L'esempio seguente crea un oggetto ( myObject ), con due proprietà ( firstName e lastName ) e un metodo ( fullName ):

Esempio

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();         // Will return "John Doe"

Il metodo fullName è una funzione. La funzione appartiene all'oggetto. myObject è il proprietario della funzione.

La cosa chiamata this, è l'oggetto che "possiede" il codice JavaScript. In questo caso il valore di this è myObject .

Provalo! Modificare il metodo fullName per restituire il valore di this:

Esempio

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

// This will return [object Object] (the owner object)
myObject.fullName();

Invocare una funzione come metodo oggetto, fa sì che il valore di this sia l'oggetto stesso.


Invocare una funzione con un costruttore di funzioni

Se una chiamata di funzione è preceduta dalla newparola chiave, è una chiamata del costruttore.

Sembra che tu crei una nuova funzione, ma poiché le funzioni JavaScript sono oggetti, in realtà crei un nuovo oggetto:

Esempio

// This is a function constructor:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

// This creates a new object
const myObj = new myFunction("John", "Doe");

// This will return "John"
myObj.firstName;

Una chiamata del costruttore crea un nuovo oggetto. Il nuovo oggetto eredita le proprietà ei metodi dal suo costruttore.

La thisparola chiave nel costruttore non ha un valore.
Il valore di thissarà il nuovo oggetto creato quando viene richiamata la funzione.