Skip to content

Commit f804cbc

Browse files
committed
Module: Formatul de Modul - 'CommonJS' (pt 'Node.js')
1 parent 37a9703 commit f804cbc

File tree

3 files changed

+132
-0
lines changed

3 files changed

+132
-0
lines changed

js/module/CommonJS/cerc.js

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/* ============================================================================
2+
MODULE JS:
3+
FORMATUL DE MODUL - 'COMMONJS' (PT. 'NODE.JS')
4+
============================================================================== */
5+
6+
//=================================================================
7+
// (0.1) DETALIUl DE IMPLEMENTARE
8+
// PROP. PRIVATA (PRIN DICTIONARUL 'WEAKMAP()')
9+
//=================================================================
10+
const _raza = new WeakMap();
11+
12+
13+
//=================================================================
14+
// (1) INTERFATA PUBLICA (CLASA 'CERC'):
15+
//=================================================================
16+
class Cerc {
17+
18+
// MET. 'CONSTRUCTOR':
19+
constructor(raza) {
20+
21+
// PROP. PRIVATA CU SETTER (PRIN DICTIONARUL 'WEAKMAP()')
22+
_raza.set(this, raza);
23+
}
24+
25+
26+
27+
// MET. 'DESEN()':
28+
desen() {
29+
30+
// AFISARE:
31+
console.log
32+
}
33+
}
34+
35+
//=================================================================
36+
// (2) 'EXPORTAREA' 'MODULULUI' RETURNEAZA 'VALOAREA CLASEI':
37+
//=================================================================
38+
module.exports = Cerc;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
/* ============================================================================
2+
MODULE JS:
3+
FORMATUL DE MODUL - 'COMMONJS' (PT. 'NODE.JS')
4+
============================================================================== */
5+
6+
/*
7+
(#1) CODUL JS --> SE 'PLASEAZA' IN 'FISIERE SEPARATE'
8+
--> DENUMITE 'MODULE'
9+
10+
(#2) AVANTAJELE 'MODULELOR':
11+
=> MENTENABILITATEA;
12+
=> UZABILITATEA,
13+
=> ABSTRACTIZAREA
14+
15+
16+
(#3) IN 'ES5' --> 'NU EXISTA' CONCEPTUL DE 'MODULE'
17+
18+
(#4) ''FORMATURI DE 'MODULE':
19+
20+
[1] 'AMD' (Asynchronous Module Definition) -> PT. 'BROWSER'
21+
[2] 'CommonJS' (Common JavaScript) -> PT. 'Node.js'
22+
[3] 'UMD' Universal Module Definition) -> PT. 'BROWSER'/'Nose.js'
23+
[4] 'ES6 Modules' (EcmasScript Modules) -> PT. 'BROWSER'
24+
25+
(#) COEZIUNEA / COHESION:
26+
=> ESTE PROCESUL DE 'GRUPARE IMPREUNA' A 'OBIECTELOR ASEMANATOARE'.
27+
28+
(#) IN MOD IMPLICIT
29+
=> 'TOT CE SE PLASEAZA' INTR-UN 'MODUL'
30+
=> SE CONSIDERA IZOLAT (NU POATE FI ACCESAT DIN EXTERIOR)
31+
=> DACA NU IL 'EXPORTAM' EXPLICIT.
32+
33+
(*) 'EXPORTAREA MODULELOR' IN 'NODE.JS' SAU 'CommonJS':
34+
EX. - 'EXPORTAREA' UNEI 'PROPRIETATI' CU 'VALOAREA CLASEI'
35+
module.exports.Cerc = Cerc;
36+
37+
EX. - 'EXPORTAREA' 'MODULULUI' RETURNEAZA 'VALOAREA CLASEI':
38+
module.exports = Cerc;
39+
40+
41+
(*) CLASA 'EXPORTATA'
42+
=> SE NUMESTE 'INTERFATA PUBLICA'.
43+
44+
45+
(*) PROP. PRIVATA (PRIN DICTIONARUL 'WEAKMAP()')
46+
=> SE NUMESTE 'DETALIU DE IMPLEMENTARE'.
47+
48+
49+
(*) 'IMPORTAREA MODULELOR'
50+
=> SE REALIZEAZA PRIN FUNCTIA
51+
=> FORMATULUI CommonJS - 'REQUIRE()'.
52+
53+
*/
54+
55+
56+
57+
//=================================================================
58+
// (1) IMPORTAREA MODULULUI 'CERC':
59+
//=================================================================
60+
const Cerc = require('CommonJS/cerc');
61+
62+
63+
//=================================================================
64+
// (2) CREAREA OBIECTULUI 'CERC':
65+
//=================================================================
66+
const c = new Cerc(1);
67+
68+
69+
//=================================================================
70+
// (3) APELARE MET. 'DESEN()':
71+
//=================================================================
72+
c.desen();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8" />
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8+
<title>
9+
Module: Formatul de Modul - 'CommonJS' (pt 'Node.js')
10+
</title>
11+
</head>
12+
13+
<body>
14+
<h1>
15+
Module: Formatul de Modul - 'CommonJS' (pt 'Node.js')
16+
</h1>
17+
18+
<!-- IMPORT FISIER EXTERN JS -->
19+
<script src="js/module/module__formatul_de_modul__CommonJS_(pt_Node.js).js"></script>
20+
</body>
21+
22+
</html>

0 commit comments

Comments
 (0)