ES6 - Reflect API

ES6 introduce nuove funzionalità intorno alla meta-programmazione che implica l'ispezione o la modifica della struttura del programma o la modifica del modo in cui le cose funzionano nel linguaggio stesso.

Di seguito sono riportate le tre forme di meta programmazione:

  • Introspection- Introspezione significa un programma che raccoglie informazioni su se stesso. Alcuni esempi di operatori JavaScript utilizzati per l'introspezione sonotypeof, instanceof eccetera.

  • Self-modification- L'auto-modifica si riferisce alla modifica della struttura di un programma in fase di esecuzione. Implica l'accesso o la creazione di nuove proprietà in fase di esecuzione. In altre parole, l'auto-modifica è quando un codice si modifica da solo.

  • Intercession- si riferisce al codice che modifica il comportamento predefinito di un linguaggio di programmazione. L'intercessione implica la modifica della semantica del linguaggio di programmazione o l'aggiunta di nuovi costrutti al programma in fase di esecuzione.

ES6 introduce Reflect Application Programming Interface (Reflect API) e Proxy API che supporta la meta programmazione.

Meta programmazione con Reflect API

L'API Reflect in ES6 ci consente di ispezionare o modificare classi, oggetti, proprietà e metodi di un programma in fase di esecuzione. IlReflectL'API fornisce un oggetto Reflect globale che dispone di metodi statici che possono essere utilizzati per l'introspezione. Questi metodi vengono utilizzati per rilevare informazioni di basso livello sul codice. L'API Reflect può essere utilizzata per creare framework di test di automazione che esaminano e analizzano il programma in fase di esecuzione.

Di seguito sono riportati alcuni metodi comunemente usati dell'oggetto Reflect:

Suor n Metodo e descrizione
1 Reflect.apply ()

Chiama una funzione di destinazione con argomenti come specificato dal parametro args

2 Reflect.construct ()

Equivale a chiamare nuovi oggetti target (... args) di una classe

3 Reflect.get ()

Una funzione che restituisce il valore delle proprietà.

4 Reflect.set ()

Una funzione che assegna valori alle proprietà. Restituisce un valore booleano vero se l'aggiornamento ha avuto esito positivo.

5 Reflect.has ()

L'operatore in come funzione. Restituisce un valore booleano che indica se esiste una proprietà propria o ereditata.