Skip to content

Commit 45b35f8

Browse files
committed
translated until line 254
1 parent 874f062 commit 45b35f8

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

1-js/06-advanced-functions/03-closure/article.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -202,56 +202,56 @@ Totul pare simplu deocamdată, nu?
202202
De asemenea motoarele JavaScript îl pot optimiza, pot renunța la variabilele nefolosite pentru a economisi memorie și pot efectua alte trucuri interne, atâta timp cât comportamentul vizibil rămâne cel descris.
203203
```
204204

205-
### Step 2. Function Declarations
205+
### Pasul 2. Function Declaration
206206

207-
A function is also a value, like a variable.
207+
O funcție este de asemenea o valoare, la fel ca o variabilă.
208208

209-
**The difference is that a Function Declaration is instantly fully initialized.**
209+
**Diferența este că o Function Declaration este instantaneu complet inițializată.**
210210

211-
When a Lexical Environment is created, a Function Declaration immediately becomes a ready-to-use function (unlike `let`, that is unusable till the declaration).
211+
Atunci când este creat un Mediu Lexical, o Function Declaration devine imediat o funcție gata de utilizare (spre deosebire de `let`, care este inutilizabilă până la declarație).
212212

213-
That's why we can use a function, declared as Function Declaration, even before the declaration itself.
213+
De aceea putem utiliza o funcție, declarată ca Function Declaration, chiar înainte de declarația propriu-zisă.
214214

215-
For example, here's the initial state of the global Lexical Environment when we add a function:
215+
De exemplu, iată care este starea inițială a mediului lexical global atunci când adăugăm o funcție:
216216

217217
![](closure-function-declaration.svg)
218218

219-
Naturally, this behavior only applies to Function Declarations, not Function Expressions where we assign a function to a variable, such as `let say = function(name)...`.
219+
Firește, acest comportament se aplică numai la Function Declaration, nu și la Function Expression în care atribuim o funcție unei variabile, cum ar fi `let say = function(name)...`.
220220

221-
### Step 3. Inner and outer Lexical Environment
221+
### Pasul 3. Mediul Lexical interior și exterior
222222

223-
When a function runs, at the beginning of the call, a new Lexical Environment is created automatically to store local variables and parameters of the call.
223+
Atunci când rulează o funcție, la începutul apelului, se creează automat un nou mediu lexical pentru a stoca variabilele locale și parametrii apelului.
224224

225-
For instance, for `say("John")`, it looks like this (the execution is at the line, labelled with an arrow):
225+
De exemplu, pentru `say("John")`, acesta arată astfel (execuția se află la linia marcată cu o săgeată):
226226

227227
<!--
228228
```js
229-
let phrase = "Hello";
229+
let phrase = "Bună ziua";
230230
231231
function say(name) {
232232
alert( `${phrase}, ${name}` );
233233
}
234234
235-
say("John"); // Hello, John
235+
say("John"); // Bună ziua, John
236236
```-->
237237

238238
![](lexical-environment-simple.svg)
239239

240-
During the function call we have two Lexical Environments: the inner one (for the function call) and the outer one (global):
240+
În timpul apelului funcției avem două medii lexicale: cel intern (pentru apelul funcției) și cel extern (global):
241241

242-
- The inner Lexical Environment corresponds to the current execution of `say`. It has a single property: `name`, the function argument. We called `say("John")`, so the value of the `name` is `"John"`.
243-
- The outer Lexical Environment is the global Lexical Environment. It has the `phrase` variable and the function itself.
242+
- Mediul Lexical intern corespunde execuției curente a lui `say`. Acesta are o singură proprietate: `name`, argumentul funcției. Am apelat `say("John")`, deci valoarea lui `name` este `"John"`.
243+
- Mediul Lexical exterior este Mediul Lexical global. Acesta conține variabila `phrase` și funcția în sine.
244244

245-
The inner Lexical Environment has a reference to the `outer` one.
245+
Mediul Lexical intern are o referință la cel `extern`.
246246

247-
**When the code wants to access a variable -- the inner Lexical Environment is searched first, then the outer one, then the more outer one and so on until the global one.**
247+
**Când codul vrea să acceseze o variabilă -- se caută mai întâi Mediul Lexical interior, apoi cel exterior, apoi cel mai exterior și așa mai departe până la cel global.**
248248

249-
If a variable is not found anywhere, that's an error in strict mode (without `use strict`, an assignment to a non-existing variable creates a new global variable, for compatibility with old code).
249+
Dacă o variabilă nu este găsită nicăieri, este o eroare în modul strict (fără `use strict`, o atribuire la o variabilă inexistentă creează o nouă variabilă globală, pentru compatibilitate cu codul vechi).
250250

251-
In this example the search proceeds as follows:
251+
În acest exemplu căutarea se desfășoară după cum urmează:
252252

253-
- For the `name` variable, the `alert` inside `say` finds it immediately in the inner Lexical Environment.
254-
- When it wants to access `phrase`, then there is no `phrase` locally, so it follows the reference to the outer Lexical Environment and finds it there.
253+
- Pentru variabila `name`, `alert` din `say` o găsește imediat în Mediul Lexical intern.
254+
- Când vrea să acceseze `phrase`, atunci nu există `phrase` la nivel local, așa că urmărește referința la Mediul Lexical exterior și o găsește acolo.
255255

256256
![lexical environment lookup](lexical-environment-simple-lookup.svg)
257257

0 commit comments

Comments
 (0)