Skip to content

Commit 50dadea

Browse files
Class basic syntax
Final polish after fixing the merge conflicts. Some translation fixes.
1 parent f472de0 commit 50dadea

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

1-js/09-classes/01-class/article.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ In programarea orientată obiect, o clasă este un program extensibil code-templ
99

1010
Așa cum știm deja din capitolul <info:constructor-new>, `new function` ne poate ajuta cu asta.
1111

12-
În schimb in JavaScript de astăzi, există o metodă de constructie a claselor mult mai avansată, ce introduce noi caracteristici grozave ce sunt folositoare în programarea orientată obiect.
12+
Dar in JavaScript-ul modern, există o metodă de constructie a claselor mai avansată, care introduce noi caracteristici grozave ce sunt folositoare în object-oriented programming.
1313

1414
## Sintaxa "class"
1515

@@ -45,15 +45,15 @@ class User {
4545
}
4646

4747
// Mod de folosire:
48-
let user = new User("John");
48+
let user = new User("Ion");
4949
user.sayHi();
5050
```
5151

52-
Atunci când `new User("John")` este apelat:
52+
Atunci când `new User("Ion")` este apelat:
5353
1. Un nou obiect este creat.
54-
2. `constructor`ul rulează cu argumentul primit și îi atribuie `this.name` acestuia.
54+
2. `constructor`-ul rulează cu argumentul primit și îi atribuie `this.name` acestuia.
5555

56-
...După acestea, putem apela metode ale obiectelor precum `user.sayHi()`.
56+
...După aceasta, putem apela metode ale obiectelor precum `user.sayHi()`.
5757

5858

5959
```warn header="Fără virgule între metodele claselor"
@@ -70,7 +70,7 @@ Haideți să dezvăluim magia ei și să vedem cu adevărat ce este defapt o cla
7070

7171
În JavaScript, o clasă este un fel de funcție.
7272

73-
Uite, spre exemplu:
73+
Aici, aruncă o privire:
7474

7575
```js run
7676
class User {
@@ -80,11 +80,11 @@ class User {
8080

8181
// dovadă: User este o funcție
8282
*!*
83-
alert(typeof User); // funcție
83+
alert(typeof User); // function
8484
*/!*
8585
```
8686

87-
Ce face constructorul `class User {...}` mai exact este:
87+
Ce face constructorul `class User {...}` cu adevărat este:
8888

8989
1. Crează o funcție denumită `User`, ce devine rezultatul unei declarări a clasei. Codul funcției este preluat din metoda `constructor` (se presupune faptul că e goală dacă nu declarăm o astfel de metodă).
9090
2. Conține metode ale clasei, precum `sayHi`, în `User.prototype`.
@@ -137,7 +137,7 @@ User.prototype.sayHi = function() {
137137
};
138138

139139
// Mod de folosire:
140-
let user = new User("John");
140+
let user = new User("Ion");
141141
user.sayHi();
142142
```
143143

@@ -154,8 +154,8 @@ Totuși, există diferențe importante.
154154
constructor() {}
155155
}
156156

157-
alert(typeof User); // funcție
158-
User(); // Eroare: Constructorul clasei User nu poate să fie invocat fără termenul 'new'
157+
alert(typeof User); // function
158+
User(); // Error: Class constructor User cannot be invoked without 'new'
159159
```
160160

161161
De asemenea, o reprezentare a șirului de caractere a unui constructor de clasă în engine-ul JavaScript începe cu "class..."
@@ -180,7 +180,7 @@ Totuși, există diferențe importante.
180180
181181
În plus, sintaxa `class` aduce mult mai multe caracteristici pe care o să le explorăm în curând.
182182
183-
## Expresia Clasei
183+
## Class Expression
184184
185185
La fel ca și funcțiile, clasele pot fi definite în interiorul altei expresii, transmise dintr-o parte în alta, returnate, atribuite, etc.
186186
@@ -209,7 +209,7 @@ let User = class *!*MyClass*/!* {
209209

210210
new User().sayHi(); // funcționează, afișează definiția lui MyClass
211211

212-
alert(MyClass); // eroare, numele MyClass nu este vizibil în afara clasei
212+
alert(MyClass); // error, MyClass name isn't visible outside of the class
213213
```
214214

215215
Putem chiar să facem clasele dinamice "la cerere", în felul următor:
@@ -263,8 +263,8 @@ class User {
263263

264264
}
265265

266-
let user = new User("John");
267-
alert(user.name); // John
266+
let user = new User("Ion");
267+
alert(user.name); // Ion
268268

269269
user = new User(""); // Numele este prea scurt
270270
```
@@ -316,7 +316,7 @@ class User {
316316
new User().sayHi(); // Salut, Ion!
317317
```
318318

319-
Așadar, trebuie doar să scriem "<numele proprietății> = <valoare>" în declarație, și asta este tot.
319+
Așadar, scrim doar " = " în declarație, și asta este tot.
320320

321321
Diferența importantă a câmpurilor de clasă este că acestea sunt setate pe obiecte individuale, nu pe `User.prototype`:
322322

@@ -337,12 +337,12 @@ De asemenea, putem atribui valori folosind expresii mai complexe și apeluri de
337337
```js run
338338
class User {
339339
*!*
340-
name = prompt("Nume, vă rog?", "John");
340+
name = prompt("Nume, vă rog?", "Ion");
341341
*/!*
342342
}
343343

344344
let user = new User();
345-
alert(user.name); // John
345+
alert(user.name); // Ion
346346
```
347347

348348

0 commit comments

Comments
 (0)