[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
3K vues63 pages

Programmation Web Ch4

Transféré par

moustaphasaleck
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3K vues63 pages

Programmation Web Ch4

Transféré par

moustaphasaleck
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 63

Programmation web

A.U. 2020-2021
(Support de cours)

CSCI361A
Université Libanaise Internationale

Pr. Moustapha Mohamed Saleck


2
1. Introduction

Pourquoi JavaScript ?
 Limites de HTML :
• HTML + CSS --> pages Web statiques.
• Nécessité d’un Web dynamique :
– Interaction avec l’utilisateur.
– Réponses à des événements.
– Animation du texte ou de graphiques.
– Gestion des objets multimédias du Web (images,
sons, vidéos, …).
– Autres fonctionnalités très poussées. 3
1. Introduction
C’est quoi JavaScript ?
 C’est un langage de scripts :
• Un script est tout simplement un code : un ensemble
d’instructions.
• Objectifs d’un script :
– Manipuler;
– Personnaliser;
– Automatiser les facilités déjà offertes par le
langage de scripts.
• Exemples de langages de scripts :
4
– ECMAScript, JavaScript, JScript, Shell, Python,
VbScript, …etc.
1. Introduction
 Propriétés de JavaScript :
 Langage de programmation de scripts.
 Orienté prototype.
 Langage interprété et non compilé.
 Langage portable : indépendant du système
d’exploitation de la machine sur laquelle s’exécute.
Java ≠ JavaScript.

5
1. Introduction
 JavaScript dans HTML :
Les balises <SCRIPT> . . . </SCRIPT>
• Un script JavaScript peut être inséré dans un
fichier HTML en utilisant la balise <SCRIPT>.
• Exemple :
<html>
<head><title>Essai</title></head>
<body>
<script language = "JavaScript"> alert("Bonjour!!");
</script>
<h1>Test de JavaScript</h1> 6
</body>
</html>
1. Introduction

Les balises <SCRIPT> . . . </SCRIPT>


• Un script JavaScript externe peut être relié à un
fichier HTML en utilisant l’attribut SRC de la balise
<SCRIPT>.
• Exemple :
<script language = "JavaScript" src ="mon_script.js">
</script>

7
2. Les bases du langage

 Syntaxe du langage :
• JavaScript est sensible à la casse : distinction entre
majuscules et minuscules (comme C).
• Typage des variables faible.
• Points-virgules « ; » à la fin de ligne sont optionnels.
• Commentaires identiques à C ou à Java :
// …
/* … */
• Les accolades { … } sont utilisées pour indiquer des
blocs de code. 8
2. Les bases du langage

 Variables :
• Une variable est définie par le mot clé var :
o var n;
o var test = 0;
o var a, b;
• Typage faible :
o var n = 15;
o n = "Bonjour!!!";
o n = false;
9
2. Les bases du langage
 Variables :
• Règles des identificateurs :
 Un identificateur doit commencer par une lettre
{a, b, …, z, A, B, …, Z}, ou le caractère souligné
« _ », ou « $ »;
 Il ne doit contenir que des lettres, des chiffres, des
caractères soulignés « _ » ou des caractères « $ ».
 Exemples d’identificateurs valides : test _test
test1 test_2 $test _$test$

10
2. Les bases du langage

 Valeurs :
• Valeurs primitives :
 Une valeur primitive est une donnée stockée
directement dans l’emplacement de la variable.
Par exemple, les nombres, les valeurs booléennes,
les chaînes de caractères, …etc.
• Valeurs références :
 Une valeur référence représente un pointeur vers
un emplacement mémoire.

11
2. Les bases du langage

Types primitifs :
• Booléen :
o Deux valeurs : true et false.
var test = true, choix = false;
• Number :
o Valeurs à la fois entières et réelles.
var iNum = 155; // décimal
var oNum = 011; // octal
var hNum = 0x1a; // hexadécimal
var fNum1 = - 1.1; // flottant 12
var fNum2 = 3.15e17; // flottant
2. Les bases du langage
• Number (suite) :
o Autres valeurs spéciales :
Infinity // + l’infini -Infinity // - l’infini
NaN // Not a Number
o Deux méthodes :
isFinite : teste si une valeur est finie.
isNaN : teste si une valeur n’est pas un nombre.
Exemples :
var n = 1/0 // n = Infinity
var test1 = isFinite(n) // test1 = false
13
var m = 0/0 // n = NaN
var test2 = isNaN(m) // test2 = true
2. Les bases du langage
• String :
o Valeurs : chaînes de caractères.
o Délimiteurs JavaScript :
– Guillemets : "
– Quottes : '
var ch1 = "Bonjour"; var ch2 = 'Bonjour';
• Undefined :
o Valeur unique : undefined
o Lorsqu’une variable est déclarée, mais non encore initialisée,
JavaScript considère que sa valeur est undefined.
var n1, n2 = 10;
14
var test1 = (n1 == undefined);
var test2 = (n2 == undefined); // test1 = true et test2 = false
2. Les bases du langage
• Null :
o Valeur unique : null
o Elle est utilisée pour représenter un objet qui n’existe
pas encore.
o Remarque :
– Les valeurs null et undefined sont égales, mais elles
ont des interprétations différentes.
– L’expression « null == undefined » a pour valeur
true.

15
2. Les bases du langage
 Types références :
• Object :
o Les objets en JavaScript sont de simples
conteneurs de données et de méthodes.
o L’opérateur « new » permet de créer un nouveau
objet d’une certaine classe.
o Le type « Object » représente les valeurs de la
classe « Object ».
Exemple :
var obj = new Object();
16
2. Les bases du langage
 L’opérateur « typeof » :
• Paramètres :
o Une variable ou une valeur constante.
• Rôle :
o Retourne le type d’une variable ou d’une valeur constante.
Exemples :
var num = 95;
var type1 = (typeof num); // type1 = "number«
var test = false;
var type2 = (typeof test); // type2 = "boolean"
17
var ch = "bonjour!";
var type3 = (typeof ch); // type3 = "string"
2. Les bases du langage

 Les conversions : convertir à une chaîne


• La méthode « toString(base) » :
o Convertit une donnée en une chaîne de caractère.
o La base est par défaut = 10.
Exemples :
var test = true;
var strtest = test.toString(); // strtest = "true«
var n = 9, m = 10, p = 9.0;
var s1 = n.toString(); // "9"
var s2 = n.toString(2); // "1001"
18
var s3 = n.toString(8); // "11"
var s4 = m.toString(16); // "A"
2. Les bases du langage

• La méthode « parseInt(chaîne, base) » :


o Convertit une donnée en une valeur
o numérique entière dans la base indiquée.
• La base est par défaut = 10.
Exemples :
var n1 = parseInt("123"); // n1 = 123
var n2 = parseInt("1234Rt"); // n2 = 1234
var n3 = parseInt("0xA"); // n3 = 10
var n4 = parseInt("12.34"); // n4 = 12
var n5 = parseInt("bonjour"); // n5 = NaN
19
var n6 = parseInt("AF", 16); // n6 = 175
var n7 = parseInt("10", 2); // n7 = 2
2. Les bases du langage
• La méthode « parseFlot(chaîne) » :
o Convertit une donnée en une valeur numérique réelle.
Exemples :
var f1 = parseFloat("1234blue"); // returns 1234.0
var f2 = parseFloat("0xA"); // returns NaN
var f3 = parseFloat("22.5"); // returns 22.5
var f4 = parseFloat("22.34.5"); // returns 22.34
var f5 = parseFloat("0908"); // returns 908
var f6 = parseFloat("blue"); // returns NaN

20
2. Les bases du langage
 Les conversions : Coercitions
• Les méthodes :
o Boolean (valeur) : convertit une valeur en une valeur
booléenne équivalente.
o Number (valeur) : convertit une valeur en une valeur
numérique équivalente.
o String (valeur) : convertit une valeur en une valeur
chaîne de caractères équivalente.
Exemples :
var b1 = Boolean(""); // false : chaîne vide
21
var b2 = Boolean("hi"); // true : chaîne non vide
var b3 = Boolean(100); // true : nombre non nul
2. Les bases du langage
Exemples (suite) :
var b5 = Boolean(null); // false : la valeur null
var b6 = Boolean(new Object()); // true : objet
var n1 = Number(false) // 0
var n2 = Number(true) // 1
var n3 = Number(undefined) // NaN
var n4 = Number(null) // 0
var n5 = Number("5.5") // 5.5
var n6 = Number("56") // 56
var n7 = Number("5.6.7") // NaN
var n8 = Number(new Object()) // NaN
22
var n9 = Number(100) // 100
2. Les bases du langage
 La classe Object :
• Rôle :
o C’est la classe de base de JavaScript.
o Toute autre classe hérite de la classe Object.
o Toutes les propriétés (attributs) et les méthodes de la classe
Object sont également des propriétés et des méthodes de
toutes les autres classes.
• Propriétés :
o constructor : référence sur la fonction qui crée l’objet. Pour
la classe « Object », elle pointe vers la fonction native «
23
Object() ».
o prototype : référence sur le prototype de cet objet.
2. Les bases du langage
• Méthodes :
o hasOwnProperty(property) : détermine si une propriété donnée
existe pour l’objet. La propriété doit être spécifiée comme une chaîne
de caractères.
o isPrototypeOf(object) : détermine si l’objet est un prototype d’un
autre objet.
o propertyIsEnumerable(property) : détermine si une propriété
donnée peut être énumérée en utilisant l’instruction « for...in »
statement.
o toString() : retourne une représentation sous forme d’une chaîne
primitive de l’objet. 24

o valueOf() : retourne la valeur primitive la plus appropriée d’un objet.


2. Les bases du langage
• toFixed(nbChiffres) : retourne une chaîne représentant le
nombre avec un nombre spécifié de chiffres après la virgule.
 La classe Boolean :
• Création d’objets booléens :
o var objBool = new Boolean(ture);
o var obj2 = new Boolean(false);
• L’argument « nbChiffres » : doit être un entier entre 0 et 20.
 La classe Number :
• Création d’objets numériques :
o var objNum = new Number(18);
25
2. Les bases du langage

Exemple :
var n = new Number(99);
var s = n.toFixed(2); // s = "99.00«
var n = new Number(99);
var s = n.toExponential(1)); // s = "9.9e+1"
• toExponential(nbDecimals) : retourne une chaîne de
caractères qui représente le nombre sous la forme scientifique

 La classe String :
• Création d’un objet String :
var s1 = new String(""); // s1 = "" : chaîne vide 26

var s2 = new String("Bonjour"); // s1 = "Bonjour"


2. Les bases du langage
• Propriétés :
o length : représente le nombre de caractères de la chaîne crée.
var s = new String("Bonjour");
var n = s.length; // n = 7
• Méthodes :
o charAt(position) : donne le caractère de la chaîne dont la
position est indiquée.
var s1 = new String("Bonjour");
var s2 = s1.charAt(2); // s2 = "n“
o charCodeAt(position) : donne le code du caractère de la
27
chaîne de la position désirée.
2. Les bases du langage
var s1 = new String("hello");
var s2 = s1.charAt(1); // s2 = "101"
o concat(chaîne) : concatène une chaîne à la fin de la chaîne
appelante.
var s = new String("he");
s.concat("llo"); // s = "hello«
o indexOf(ch) : donne la position de la première occurrence de « ch »
dans la chaîne appelante.
var s = new String("hello");
var n = s.indexOf("lo"); // n = 3
28
o lastIndexOf(ch) : donne la position de la dernière occurrence de «
ch » dans la chaîne appelante.
2. Les bases du langage
var s = new String("helolo");
var n = s.indexOf("lo"); // n = 4
o localCompare(ch): compare la chaîne appelante avec la chaîne en argument
(-1, si ch > l’appelante, 0 si ch = l’appelante et +1 si ch < l’appelante).
var s = new String("hello");
var n1 = s.localCompare("aello"); // n1 = 1
var n2 = s.localCompare("zello"); // n2 = -1
var n3 = s.localCompare("hello"); // n3 = -1
o toUpperCase(): transforme les caractères de la chaîne appelante en majuscule.
o toLowerCase(): transforme les caractères de la chaîne appelante en minuscule.
var s = new String("heLLo");
29
s.toUpperCase(); // s = "HELLO"
s.toLowerCase(); // s = "hello"
2. Les bases du langage
 L’opérateur instanceOf :
• Permet de tester si un objet est instance d’une classe ou non.
• Il retourne un résultat booléen (true/flase) selon que l’objet
est une instance de la classe ou non.
var s = new String("hello");
var b1 = s instanceOf String; // b1 = true
var b2 = s instanceOf Number; // b = false
 Les opérateurs :
• Arithmétiques :

Addition : + Soustraction et opposé : - Multiplication : *


30
Division : / Modulo : % Incrémentation : ++
Décrémentation : -- Négation bit à bit : ∼
2. Les bases du langage

Et bit à bit : & Ou bit à bit : | Xor (Ou bien) : ^


Décalage à gauche : << Décalage à droite signé : >>
Décalage à droite non signé : >>>
• Logiques :
Et logique : && Ou logique : || Non logique : !
• Comparaisons :
Supérieure : > Supérieure ou égale : >= Inférieure ou égale : <=
Inférieure : < Égale à : = Différent de : !=
Identiquement égale à : === Identiquement différent de : !==

var sNum = "55"; var iNum = 55;


31
var b1 = (sNum == iNum); // b1 = "true"
var b2 = (sNum === iNum); // b2 = "false"
2. Les bases du langage

• La différence entre « == » et « === » est que l’opérateur « == »


effectue une conversion de types des opérandes avant le test
d’égalité, alors que l’opérateur « === » n’effectue pas de
conversion de types.
• Par suite, l’expression « a == b » est vraie si et seulement si la
valeur de a (ou de b) peut se convertir en la valeur de b (ou de a).
 Opérateur conditionnel :
• ?:
var a = 33; var b = -55;
var max = (a > b ? a : b); // max = 33 32
var valabs = (b >= 0 ? b : -b); // valabs = 55
2. Les bases du langage

 Opérateurs d’affectation :
• Affectation simple : =
• Affectation composée : += -= *= /= %= <<= >>=
>>>= ~= ^= &= |=
 Opérateur virgule :
var a = 11, b = 22;

 Opérateur delete :
var o = new Object();
o.name = "chat";
delete o.name; // supprime name 33
2. Les bases du langage

 Les instructions :
• Conditionnelles :

o if(condition) instruction1 else


instruction2
o switch(expression) {
case valeur_1 : instruction_1
case valeur_2 : instruction_2
...
case valeur_N : instruction_N
default: instruction 34
}
2. Les bases du langage
• Répétitives :
o While (condition) instruction
o do instruction while (condition);
o for (initialisation; condition, incrémentation) instruction
o for (propriété in expression) instruction
o With (expression) instruction

Exemple for-in :
for (p in document)
alert(p); // on affiche toutes les propriétés de l’objet document

35
2. Les bases du langage

Exemple with :
var p = "bonjour"
with(p) {
alert(toLowerCase());
alert(toUpperCase()); }
• L’instruction break :
o Provoque l’arrêt d’une boucle ou d’un switch.
• L’instruction continue :

o Provoque l’arrêt de l’itération courante, mais


pas la boucle. 36
2. Les bases du langage

Exemples de break et de
while(1)
{
var n = prompt("Un entier svp ");
if(n % 2 == 0) continue;
if(n % 3 == 0) break;
alert("je suis à l’intérieur\n");
}
alert("je suis à l’extérieur\n");

37
2. Les bases du langage

 Les fonctions :
• Syntaxe de définition d’une fonction :
function nomFonction(Arguments)
{
Instructions
}
• Propriétés des fonctions :
o Elle peut avoir 0, 1 ou plusieurs arguments.
o Elle peut ne pas retourner de valeur.
o Pas de précision des types des arguments et de celui du 38

résultat.
2. Les bases du langage

o Si la fonction doit retourner une valeur, on utilise l’instruction


« return »
o Pas de surcharge.
o Elle peut ne pas retourner de valeur.
o Pas de précision des types des arguments et de celui du résultat.
o On peut accéder aux arguments d’une fonction en utilisant
l’objet arguments.
o Pour une fonction, arguments.length désigne le nombre de ses
arguments.
39
2. Les bases du langage
Exemple 1 :
// cette fonction affiche un message de salutation spéciale
function saluer(Nom, Message)
{
alert("Bonjour " + Nom + ", " + Message);
}
// appel de la fonction:
saluer("Ali", "Comment va-tu ?");

40
2. Les bases du langage
Exemple 2 :
// une fonction récursive (calcule la factorielle)
function fact(num)
{
if(num == 0) return 1;
else return num * fact(num - 1);
}
// appel de la fonction:
fact(0); // retourne 1
fact(3); // retourne 6 41
2. Les bases du langage
Exemple 3 :
// une fonction à nombre d’arguments variable
function sum() {
var n = arguments.length;
if (n == 0) alert("Rien !");
else { var s = 0, i;
for (i = 0; i < n; i++)
s += arguments[i];
alert(s); }
}
42
3. Les aspects orientés objet

 Les objets et leurs classes


• Le concept d’objet :

o Un objet est une entité ayant des propriétés et des méthodes.


Exemple :
– La voiture de Ali est un objet.
o Une propriété d’un objet est un élément qui décrit un aspect
de l’état de cet objet.
Exemples :
– La voiture de Ali est une R19 (marque) et elle a une
blanche (couleur) (propriétés). 43
3. Les aspects orientés objet
o Une méthode d’un objet est un élément qui décrit un aspect du
comportement de cet objet.
o Une méthode décrit les actions ou les réactions que peut effecteur
ou subir un objet.
Exemple : la voiture de Ali peut démarrer, rouler, faire une
marche arrière, accélérer, et s’arrêter (méthodes).
• Le concept de classe :
o Une classe décrit un ensemble d’objets ayant la même structure et
les mêmes comportements.
o Une classe sert de modèle pour ses objets. 44
o Une classe est une abstraction d’un objet du monde réel (prototype).
.
3. Les aspects orientés objet
o On dit qu’un objet est une instance d’une classe

45
3. Les aspects orientés objet
 Création d’objets :
• L’opérateur new :
o Il permet de créer un objet d’une certaine classe.
o On a déjà vu quelques exemples :
var obj = new Object();
var num = new Number(17);
var ch = new String("hello");
 Types des objets en JavaScript :
• Les classes natives :
o Ce sont les classes primitives définies par le langage. Les classes
46
natives de JavaScript sont : Object Function Array String Boolean
Number Date RegExp Error EvalError RangeError ReferenceError
3. Les aspects orientés objet

• Les objets personnalisés :

o Ce sont les objets définis par le programmeur.

 L’objet Math :

• Méthodes :
o round(nombre) : arrondie le nombre au nombre le plus proche.
o pow(base, exposant) : calcule une puissance.
o sqrt(nombre) : calcule la racine carrée d’un nombre.
o min(liste) : calcule le minimum d’une liste de valeur.
o max(liste) : calcule le maximum d’une liste de valeur.
47
o abs(nombre) : calcule la valeur absolue d’un nombre.
3. Les aspects orientés objet

 La classe Array :
• Les objets Array :

o Un objet Array est un tableau.


o En JavaScript, un objet « Array » est un conteneur de
valeurs.
o Les types des valeurs d’un même tableau peuvent être
différents.
o Le premier élément se trouve à la position 0.
o Si « t » est un objet Array, alors l’expression « t[i] » désigne
l’élément qui se trouve en indice i. 48
3. Les aspects orientés objet
• Création d’un objet Array :
var p1 = new Array(); // un objet Array vide !
var p2 = new Array(10); // un objet Array de 10 éléments
var p3 = new Array(10, 14, 52);
// un objet Array ayant trois éléments qui sont 10, 14 et 52
var p4 = new Array(5, "Bye", true);
// un objet Array ayant trois éléments qui sont 5, "Bye" et true
• Accès à un élément d’un tableau :
var p = new Array(5, 7, 9);
var p1 = p[0]; // 5
49
var p2 = p[1]; // 7
var p3 = p[2]; // 9
3. Les aspects orientés objet

• Propriété length :

o Mémorise la taille d’un tableau (nombre de ses éléments).


Var p = new Array(5, 7, 9);
Var n = p.length; // 3
• Méthodes :
o toString(): renvoie une chaîne de caractères contenant les
éléments du tableau et séparés par des virgules.

var p = new Array(5, 7, 9);


var s = p.toString(); // "5,7,9"
50
3. Les aspects orientés objet
o join(ch) : renvoie une chaîne de caractères contenant les éléments du
tableau et séparés par la chaîne de jointure ch.
var p = new Array(5, 7, 9);
var s = p.join("#"); // "5#7#9"

o concat(liste) : ajoute à la fin des éléments à un tableau (sans effet de


bord).
var p = new Array(5, 7, 9);
p = p.concat(11); // p = (5,7,9,11)
o push(liste) : ajoute des éléments à la fin d’un tableau (opération à effet
de bord).
51
var p = new Array(5, 7, 9)
p.push(1, 8); // p = (5,7,9,1, 8)
3. Les aspects orientés objet
o pop(): supprime le dernier élément d’un tableau (opération à effet de
bord).
var p = new Array(5, 7, 9);
p.pop(); // p = (5,7)
o shift(): supprime le premier élément d’un tableau (opération à effet de
bord).
var p = new Array(5, 7, 9);
p.shift(); // p = (7,9)
o unshift(liste) : ajoute au début des éléments à un tableau (opération à
effet de bord).
52
var p = new Array(5, 7, 9);
p.unshift(2, 3); // p = (2,3,5,7,9)
3. Les aspects orientés objet

o reverse() : renverse un tableau (opération à effet de bord).


var p = new Array(5, 7, 9);
p.reverse(); // p = (9,7,5)
o sort() : trie un tableau dans l’ordre croissant (opération à effet
de bord).
var p = new Array(9, 7, 5, 3);
p.sort(); // p = (3,5,7,9)

53
4. Les objets personnalisés :

 Définition des classes et des objets :


• Création d’un objet personnalisé :
var voiture = new Object; // création d’un objet voiture

o Les propriétés et les méthodes des objets peuvent être


définies d’une façon dynamique, après la création de l’objet.
var voiture = new Object;
voiture.couleur = "rouge";
voiture.puiss_fisc = 5;
voiture.nb_portes = 2;
voiture.marque = "Peugeot 205"; 54
4. Les objets personnalisés :
voiture.afficher = function() {
alert("Couler : " + voiture.couleur);
alert("Marque : " + voiture.marque);
alert("Puissance fiscale : " + voiture.puiss_fisc);
alert("Nombre de portes : " + voiture.nb_portes); }
• L’opérateur this :
o « this » est un pointeur qui pointe vers l’objet qui l’appelle.
o Il permet de réutiliser une même méthode de plusieurs objets.
var v1 = new Object;
v1.couleur = "rouge";
55
v1.print = function() { alert(v1.couleur); }
v1.print(); // affiche "rouge"
4. Les objets personnalisés :
var v2 = new Object;
v1.couleur = "grise";
v2.print = function() { alert(v2.couleur); }
v2.print(); // affiche "grise"
o Une autre façon consiste à factoriser par la fonction « print ».
o Dans ce cas, il faut afficher la couleur de l’objet (la voiture)
appelant.
o Dans ce contexte, l’utilisation de this est obligatoire.
function print() { alert(this.couleur); }
v1.print = print; v2.print = print;
56
v1.print(); // affiche "rouge"
v2.print(); // affiche "grise"
4. Les objets personnalisés :
Réécriture de l’exemple :
var voiture = new Object;
voiture.couleur = "rouge";
voiture.portes = 2;
voiture.marque = "Peugeot 205";
voiture.puiss_fisc = 5;
voiture.afficher = function() {
alert(this.couleur);
alert(this.marque);
alert(this.portes);
57
alert(this.puiss_fisc); }
voiture.afficher(); // appel de la méthode
4. Les objets personnalisés :

 Création d’objets à partir des fonctions :


Exemple 1 :
function creerVoiture() {
var temp = new Object;
temp.couleur = "rouge";
temp.marque = "Peugeot 205";
temp.portes = 2;
temp.print_couleur = function() {
alert(this.couleur); }
return temp; } 58
4. Les objets personnalisés :

Exemple 1 :

var v1 = creerVoiture(); // création des objets voitures


v1.print_couleur(); // affiche "rouge«
var v2 = creerVoiture();
v2.couleur = "noire";
v2.print_couleur(); // affiche "noire"
Exemple 2:
function creerPC(proc, ram) {
var pc = new Object;
pc.proc = proc; 59

pc.ram = ram;
4. Les objets personnalisés :

pc.print_config = function() {
alert("Microproc: " + this.proc + ", RAM : " + this.ram); }
return pc; }
var My_pc = creerPC("P4", 512);
My_pc.print_config();

60
4. Les objets personnalisés :
Exemple 3:
function get_info() {
var msg = "titre : ";
msg += this.titre + ", auteur : ";
msg += this.auteur + ", éditeur : ";
msg += this.editeur + ", année : "; msg += this.annee;
alert(msg); }
function livre(titre, auteur, editeur, annee) {
this.titre = titre; this.auteur = auteur;
this.editeur = editeur; this.annee = annee;
61
this.info = get_info;
}
4. Les objets personnalisés :
var tit = "JavaScript language";
var aut = "A. Dargham";
var edi = "Al madarisse";
var ann = 1997;
var my_book = new livre(tit, aut,edi, ann);
my_book.info();
Exemple 4 :
function book() { }
book.prototype.author = "";
book.prototype.title = "";
62
book.prototype.editor = "";
book.prototype.year = 2009;
4. Les objets personnalisés :

book.prototype.pages = 100;
book.prototype.showYear = function() { alert(this.year); }

var my_book = new book();


my_book.showYear();
var your_book = new book("M. Cormen", "Introduction à
l’algorithmique", "Dunod", 2008, 540);
your_book.showYear();

63

Vous aimerez peut-être aussi