Skip to content

Commit 3f4d9d1

Browse files
longo-andreaDorin-Davidpasor1
authored
Apply suggestions from code review
Co-authored-by: Dorin-David <70648503+Dorin-David@users.noreply.github.com> Co-authored-by: Simone Pasini <66781510+pasor1@users.noreply.github.com>
1 parent a048ad5 commit 3f4d9d1

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

1-js/08-prototypes/03-native-prototypes/2-defer-to-prototype-extended/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function f(a, b) {
1616
f.defer(1000)(1, 2); // mostra 3 dopo 1 secondo
1717
```
1818

19-
Da notare: utilizziamo `this` in `f.apply` per far si che il nostro decorator funzioni con i metodi degli oggetti.
19+
Da notare: utilizziamo `this` in `f.apply` per far che il nostro decorator funzioni con i metodi degli oggetti.
2020

2121
Quindi se la nostra funzione viene invocata come metodo di un oggeto, allora `this` viene passato al metodo originale `f`.
2222

1-js/08-prototypes/03-native-prototypes/article.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Native prototypes
22

3-
La proprietà `"prototype"` viene largamente utilizzate da JavaScript stesso. Tutti i costruttori integrati ne fanno uso.
3+
La proprietà `"prototype"` viene largamente utilizzata da JavaScript stesso. Tutti i costruttori integrati ne fanno uso.
44

5-
Come prima cosa andremo ad analizzare questa proprietà nel dettaglio, in un secondo momento vedremo come utilizzarla per aggiungere nuove funzionalità agli oggetti integrati.
5+
Come prima cosa andremo ad analizzare questa proprietà nel dettaglio; in un secondo momento vedremo come utilizzarla per aggiungere nuove funzionalità agli oggetti integrati.
66

77
## Object.prototype
88

9-
Ipotizziamo di stampare un oggetto vuoto:
9+
Ipotizziamo di dover mostrare un oggetto vuoto:
1010

1111
```js run
1212
let obj = {};
@@ -46,9 +46,9 @@ alert(Object.prototype.__proto__); // null
4646

4747
## Altri prototypes integrati
4848

49-
Altri oggetti integrati, come `Array`, `Date`, `Function` ed altri, mantengono i metodi in prototypes.
49+
Altri oggetti integrati, come `Array`, `Date`, `Function` ed altri, hanno i propri metodi in prototypes.
5050

51-
Ad esempio, quando creiamo un array `[1, 2, 3]`, il costruttore di default `new Array()` viene invocato internamente. Quindi `Array.prototype` diventa il suo prototipo e ne fonisce i suoi metodi. Questo comportamento rende l'utilizzo della memoria molto efficiente.
51+
Ad esempio, quando creiamo un array `[1, 2, 3]`, il costruttore di default `new Array()` viene invocato internamente. Quindi `Array.prototype` ne diventa il prototipo e fonisce i suoi metodi. Questo comportamento rende l'utilizzo della memoria molto efficiente.
5252

5353
Come definito nella specifica, tutti i prototype integrati hanno `Object.prototype` in cima. Questo è il motivo per cui alcune persone dicono che "tutto deriva dagli oggetti".
5454

@@ -94,24 +94,24 @@ Gli altri ogetti integrati funzionano allo stesso modo. Anche le funzioni -- poi
9494
function f() {}
9595

9696
alert(f.__proto__ == Function.prototype); // true
97-
alert(f.__proto__.__proto__ == Object.prototype); // true, eredità da objects
97+
alert(f.__proto__.__proto__ == Object.prototype); // true, eredita da objects
9898
```
9999

100100
## Primitivi
101101

102102
La situazione è molto più complessa con strings, numbers e booleans.
103103

104-
Come abbiamo già visto, questi non sono oggetti. Ma se proviamo ad accedere alle loro proprietà, viene creato un oggetto temporaneo utilizzando i rispettivi costruttori `String`, `Number` e `Boolean`. Forniscono i metodi e poi spariscono.
104+
Come abbiamo già visto, questi non sono oggetti. Ma se proviamo ad accedere alle loro proprietà, viene creato un oggetto temporaneo utilizzando i rispettivi costruttori `String`, `Number` e `Boolean`. Essi forniscono metodi e poi spariscono.
105105

106-
Questi oggetti vengono creati di "nascosto" e in realtà molti motori ottimizzano il loro utilizzo, ma la specifica li descrive in questo modo. I metodi di questi oggetti sono memorizzati proprietà prototype, e sono disponibili tramite `String.prototype`, `Number.prototype` e `Boolean.prototype`.
106+
Questi oggetti vengono creati di "nascosto" e in realtà molti motori ottimizzano il loro utilizzo, ma la specifica li descrive in questo modo. I metodi di questi oggetti sono memorizzati in proprietà del loro prototype, e sono disponibili tramite `String.prototype`, `Number.prototype` e `Boolean.prototype`.
107107

108108
```warn header="I valori `null` e `undefined` non possiedono degli oggetti che li contengono"
109-
I valori speciali `null` e `undefined` si comportano diversamente. Non possiedono degli oggetti contenitori, quindi non avremmo a disposizione le proprietà e i metodi. E non avremmo nemmeno propotype corrispondente.
109+
I valori speciali `null` e `undefined` si comportano diversamente. Non possiedono degli oggetti contenitori, quindi non avremmo a disposizione proprietà e metodi. E non avremmo nemmeno il propotype corrispondente.
110110
```
111111
112112
## Modificare i native prototypes [#native-prototype-change]
113113
114-
I Nntive prototypes possono essere modificati. Ad esempio, se aggiungiamo il metodo `String.prototype`, e questo diventa disponibile a tutte le string:
114+
I Native prototypes possono essere modificati. Ad esempio, se aggiungiamo il metodo `String.prototype`, questo diventa disponibile a tutte le string:
115115
116116
```js run
117117
String.prototype.show = function() {
@@ -155,9 +155,9 @@ alert( "La".repeat(3) ); // LaLaLa
155155
```
156156

157157

158-
## Prendere in prestito da prototypes
158+
## Prendere in prestito dai prototypes
159159

160-
Nel capitolo <info:call-apply-decorators#method-borrowing> abbiamo parlato di come "prendere in prestito" i metodi.
160+
Nel capitolo <info:call-apply-decorators#method-borrowing> abbiamo parlato di come "prendere in prestito" metodi.
161161

162162
Questo avviene quando prendiamo un metodo da un oggetto e lo copiamo in un altro.
163163

@@ -195,4 +195,4 @@ La pratica di "prendere in prestito" i metodi è flessibile, consente di eredita
195195
- I metodi vengono memorizzati nel prototype (`Array.prototype`, `Object.prototype`, `Date.prototype`, etc.)
196196
- L'oggetto memorizza solamente i dati (gli elementdi dell'array, le proprietà dell'object, la data)
197197
- I tipi di dato primitivi memorizzano i metodi nel prototype, utilizzando degli oggetti "contenitori": `Number.prototype`, `String.prototype` e `Boolean.prototype`. Fanno eccezione `undefined` e `null` che non possiedono alcun oggetto contenitore.
198-
- I prototype integrati possono essere modificati o popolati con nuovi metodi. Ma questa, è una pratica sconsigliata. L'unico caso in cui è accettabile aggiungere nuovi metodi, è per fornire l'implementazione di funzionalità definite nella specifica JavaScript, agli engines che ancora non le supportano.
198+
- I prototype integrati possono essere modificati o popolati con nuovi metodi. Ma questa è una pratica sconsigliata. L'unico caso in cui è accettabile aggiungere nuovi metodi è per fornire l'implementazione di funzionalità definite nella specifica JavaScript agli engines che ancora non le supportano.

0 commit comments

Comments
 (0)