Skip to content

Commit c4b0b76

Browse files
committed
initial commit
0 parents  commit c4b0b76

12 files changed

+329
-0
lines changed

01_ValueTypes_ReferenceTypes.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//Value types (primive types)
2+
//[Number, String, Boolean, Symbol, Null, Undefined]
3+
let x = 10;
4+
let y = x;
5+
console.log(x, y);
6+
7+
x = 20;
8+
console.log(x, y);
9+
10+
//Reference Types [Object, Array]
11+
let a = { valeur : 10};
12+
let b = a;
13+
console.log(a, b);
14+
15+
a.valeur = 20;
16+
console.log(a, b);

02_Programmation_Procedural.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//Création utilisateur1
2+
const nomsUtil1 = 'Musole Louis';
3+
const emailUtil1 = 'musole@gmail.com';
4+
const amisUtil1 = ['Jack', 'Steven'];
5+
console.log(`Nom : ${nomsUtil1}`);
6+
console.log(`Email : ${emailUtil1}`);
7+
console.log(`Amis : ${amisUtil1}`);
8+
console.log('');
9+
10+
//Création utilisateur2
11+
const nomsUtil2 = 'Gloria Hule';
12+
const emailUtil2 = 'gloria@gmail.com';
13+
const amisUtil2 = ['John', 'Alice'];
14+
console.log(`Nom : ${nomsUtil2}`);
15+
console.log(`Email : ${emailUtil2}`);
16+
console.log(`Amis : ${amisUtil2}`);
17+
console.log('');
18+
19+
//Création utilisateur3
20+
const nomsUtil3 = 'Tresor Louis';
21+
const emailUtil3 = 'tresor@gmail.com';
22+
const amisUtil3 = ['Rhema', 'David'];
23+
console.log(`Nom : ${nomsUtil3}`);
24+
console.log(`Email : ${emailUtil3}`);
25+
console.log(`Amis : ${amisUtil3}`);
26+
console.log('');
27+
28+
//fonction
29+
function login(email){
30+
console.log(`${email} est connecté(e)`);
31+
}
32+
33+
function logout(email){
34+
console.log(`${email} est déconnecté(e)`);
35+
}
36+
37+
login(emailUtil1);
38+
logout(emailUtil1);
39+
login(emailUtil2);
40+
login(emailUtil3);

03_ObjectLiteral.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//Object literal [Encapsulation]
2+
const utilisateur = {
3+
noms : 'Musole Louis',
4+
email : 'musole@gmail.com',
5+
amis : ['Steven', 'Jonathan'],
6+
login(){
7+
console.log(`${this.email} est connecté(e)`);
8+
},
9+
logout(){
10+
console.log(`${this.email} est déconnecté(e)`);
11+
}
12+
}
13+
14+
const utilisateur2 = {
15+
noms : 'Jonathan Louis',
16+
email : 'mue@gmail.com',
17+
amis : ['Steven', 'Jonathan'],
18+
login(){
19+
console.log(`${this.email} est connecté(e)`);
20+
},
21+
logout(){
22+
console.log(`${this.email} est déconnecté(e)`);
23+
}
24+
}
25+
26+
console.log(utilisateur2);
27+
console.log(utilisateur);
28+
29+
//Accès aux propriètés d'un object
30+
console.log(utilisateur.noms);
31+
console.log(utilisateur.email);
32+
33+
console.log(utilisateur['noms']);
34+
console.log(utilisateur['email']);
35+
36+
utilisateur.noms = 'Blaise King';
37+
utilisateur['email'] = 'blaise@gmail.com'
38+
console.log(utilisateur);

04_Factory_Function.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//Factory Function : c'est une maquette (model) pour créer des objects en JS
2+
const utilisateur = (noms, email, ...amis) => {
3+
return {
4+
noms, email, amis,
5+
login(){
6+
console.log(`${email} est connecté(e)`);
7+
},
8+
logout(){
9+
console.log(`${email} est déconnecté(e)`);
10+
}
11+
}
12+
}
13+
14+
const util1 = utilisateur('Musole Louis', 'musole@gmail.com', 'Gloire', 'Esther');
15+
const util2 = utilisateur('Blaise Tonton', 'tonton@gmail.com', 'Yvette');
16+
const util3 = utilisateur('Jonathan Jigy', 'jonathan@gmail.com', 'Senga', 'Clara', 'Julie');
17+
console.log(util1);
18+
console.log(util2);
19+
console.log(util3);
20+
21+
util1.login();
22+
util1.logout();
23+
24+
util2.login()
25+
util2.logout()

05_Constructor_Function.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//Consctructor Function : maquette (model) pour la création des objects
2+
function Utilisateur(noms, email, ...amis) {
3+
this.noms = noms;
4+
this.email = email;
5+
this.amis = amis;
6+
this.login = function(){
7+
console.log(`${email} est connecté(e)`);
8+
}
9+
this.logout = function(){
10+
console.log(`${email} est déconnecté(e)`);
11+
}
12+
}
13+
14+
//Une instance
15+
const util1 = new Utilisateur('Musole Louis', 'musole@gmail.com', 'Dody', 'Mira');
16+
const util2 = new Utilisateur('Zack Mwikasa', 'zack@gmail', 'Job', 'Charlie');
17+
const util3 = new Utilisateur('Hilaire Guy', 'guy@gmail.com', 'Tarzan');
18+
const util4 = new Utilisateur('Jack Ma', 'jack@gmail.com', 'Elon Musk', 'Bill Gates');
19+
console.log(util1);
20+
console.log(util2);
21+
console.log(util3);
22+
console.log(util4);
23+
24+
//Accès aux methodes
25+
util1.login();
26+
util1.logout();

06_Abstraction.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//Abstraction : se baser sur l'essentiel et non sur le détail
2+
function Employe(noms, age, sexe, salaire){
3+
this.noms = noms;
4+
this.age = age;
5+
this.sexe = sexe;
6+
this.salaire = salaire;
7+
8+
//Detail
9+
const allocation = 7000;
10+
const primeDeRisque = 600;
11+
const calculSalaire = function(){
12+
console.log(`Le salaire final: ${salaire + allocation + primeDeRisque}`);
13+
}
14+
15+
this.infoEmploye = function(){
16+
console.log(`Noms : ${this.noms}`);
17+
console.log(`Age : ${this.age}`);
18+
console.log(`Sexe : ${this.sexe}`);
19+
console.log(`Salaire : ${this.salaire}`);
20+
calculSalaire();
21+
}
22+
}
23+
24+
//L'instance
25+
const emp1 = new Employe('Daniel Cruz', 30, 'M', 50000);
26+
const emp2 = new Employe('Fiona Gallagher', 45, 'F', 90000);
27+
28+
//L'essentiel
29+
emp1.infoEmploye();
30+
emp2.infoEmploye();

07_Classe.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//Classe : c'est une maquette (model) pour créer des objects
2+
class Utilisateur {
3+
//Construicteur : C'est une fonction qui implemente les proprietés d'un object
4+
constructor(noms, email, ...amis){
5+
this.noms = noms;
6+
this.email = email;
7+
this.amis = amis;
8+
}
9+
login(){
10+
console.log(`${this.email} est connecté(e)`);
11+
}
12+
logout(){
13+
console.log(`${this.email} est déconnecté(e)`);
14+
}
15+
}
16+
17+
const util1 = new Utilisateur('Musole Louis', 'musole@gmail.com', 'Alice', 'Grace');
18+
const util2 = new Utilisateur('Blaise Huu', 'blaise@gmail.com', 'Jonathan');
19+
console.log(util1);
20+
console.log(util2);
21+
22+
util1.login();
23+
util1.logout();
24+
25+
util2.login();
26+
util2.logout();

08_Heritage.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Utilisateur {
2+
//Construicteur : C'est une fonction qui implemente les proprietés d'un object
3+
constructor(noms, email, ...amis){
4+
this.noms = noms;
5+
this.email = email;
6+
this.amis = amis;
7+
}
8+
login(){
9+
console.log(`${this.email} est connecté(e)`);
10+
}
11+
logout(){
12+
console.log(`${this.email} est déconnecté(e)`);
13+
}
14+
}
15+
16+
//Heritage des proprietés et des fonctions
17+
class Admin extends Utilisateur {
18+
//methode accessible uniquement aux admins
19+
supprimerUtilisateurs(util){
20+
utilisateurs = utilisateurs.filter(utilisateur => {
21+
return utilisateur.email != util.email;
22+
});
23+
}
24+
}
25+
26+
const util1 = new Utilisateur('Musole Louis', 'musole@gmail.com', 'Charle');7
27+
const util2 = new Utilisateur('Blaise Toin', 'blaise@gmail.com', 'Gloria', 'Juice');
28+
const admin = new Admin('Chance Key', 'chance@gmail.com', 'Jonathan', 'Moise');
29+
30+
let utilisateurs = [util1, util2, admin];
31+
console.log(utilisateurs);
32+
33+
admin.supprimerUtilisateurs(util1);
34+
console.log(utilisateurs);

09_Polymorphisme.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//Polymorphisme : Capacité d'un object à prendre plusieurs formes
2+
class User {
3+
constructor(noms){
4+
this.noms = noms;
5+
}
6+
login(){
7+
console.log(`${this.noms} connecté entant qu'utilisateur`);
8+
}
9+
}
10+
11+
class Admin extends User {
12+
login(){
13+
super.login();
14+
console.log(`${this.noms} connecté entant qu'admin`);
15+
}
16+
}
17+
18+
const user1 = new User('Musole Louis');
19+
const admin = new Admin('Blaise Tarzan');
20+
user1.login();
21+
admin.login();
22+
console.log(user1);

10_Prototype.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//Prototype (__proto__) : c'est un object qui regreoupe l'ensemble des methodes d'un objet
2+
function Utilisateur(noms, email, ...amis) {
3+
this.noms = noms;
4+
this.email = email;
5+
this.amis = amis;
6+
}
7+
8+
//Liaison d'une methode au prototype
9+
Utilisateur.prototype.login = function(){
10+
console.log(`${email} est connecté(e)`);
11+
}
12+
13+
Utilisateur.prototype.logout = function(){
14+
console.log(`${email} est déconnecté(e)`);
15+
}
16+
17+
const util1 = new Utilisateur('Musole Louis', 'musole@gmail.com', 'Dody', 'Mira');
18+
console.log(util1);

11_Heritage_Prototype.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
//Prototype (__proto__) : c'est un object qui regreoupe l'ensemble des methodes d'un objet
2+
function Utilisateur(noms, email, ...amis) {
3+
this.noms = noms;
4+
this.email = email;
5+
this.amis = amis;
6+
}
7+
8+
function Admin(...parms){
9+
//Heritage des proprietés
10+
Utilisateur.apply(this, parms);
11+
}
12+
13+
//Liaison d'une methode au prototype
14+
Utilisateur.prototype.login = function(){
15+
console.log(`${email} est connecté(e)`);
16+
}
17+
18+
Utilisateur.prototype.logout = function(){
19+
console.log(`${email} est déconnecté(e)`);
20+
}
21+
22+
//Heritage des prototypes (methodes)
23+
Admin.prototype = Object.create(Utilisateur.prototype);
24+
25+
//Fonction seulement accessible par l'admin
26+
Admin.prototype.supprimerUtilisateur = function(util){
27+
utilisateurs = utilisateurs.filter(utilisateur => {
28+
return utilisateur.email != util.email;
29+
});
30+
}
31+
32+
const util1 = new Utilisateur('Musole Louis', 'musole@gmail.com', 'Alice', 'Grace');
33+
const util2 = new Utilisateur('Blaise Juu', 'blaise@gmail.com', 'Plamedi');
34+
const util3 = new Utilisateur('Hulu Fail', 'hulu@gmail.com', 'Plamedi');
35+
const admin = new Admin('Chance Js', 'chance@gmail.com', 'Gorge', 'Daruis');
36+
37+
let utilisateurs = [util1, util2, util3, admin];
38+
39+
console.log(utilisateurs);
40+
41+
admin.supprimerUtilisateur(util1);
42+
console.log(utilisateurs);

index.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<html lang="en">
2+
<head>
3+
<meta charset="UTF-8">
4+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
5+
<title>Document</title>
6+
<script src="11_Heritage_Prototype.js"></script>
7+
</head>
8+
<body>
9+
<h1>Javascript orienté object</h1>
10+
<h2>Avec heritage avec le Prototype</h2>
11+
</body>
12+
</html>

0 commit comments

Comments
 (0)