COURS JavaScript


Accueil | Eléments de base du langage JavaScript : Les objets

Les objets



Généralités

Le concept Objet de JavaScript est la base même du langage. Ce concept existe dans d'autres langages, mais sous des formes sensiblement différentes.
Dans ce chapitre, nous verrons essentiellement et uniquement les notions de base concernant les objets. C'est la compréhension du mécanisme qui est le but du chapitre. Nous verrons plus tard comment les utiliser.
Les objets de JavaScript, sont des entités appartenant au monde des navigateurs et du langage, soit pré définis, c'est à dire existant en tant que tel d'origine, soit créés de toute pièce par le programmeur.
Nous nous attacherons dans un premier temps, aux objets pré définis du langage. Le navigateur lui même, par exemple, est un objet. La fenêtre du navigateur dans laquelle nous regardons les pages HTML de l'internet est un autre objet.
Les objets définis dans le langage JavaScript, portent bien entendu un nom, pour que nous puissions les reconnaître.
Par exemple, le navigateur que vous utilisez pour voir cette page, est un objet qui s'appelle "navigator".
La fenêtre du navigateur dans laquelle vous êtes en train de regarder cette page HTML, se nomme "window" (comme fenêtre en français d'ailleurs).
La page HTML que vous êtes en train de regarder, est un autre objet, que l'on appelle "document".
Un formulaire à l'intérieur d'un "document", est aussi un objet. C'est l'objet "form".
Un lien hypertexte dans une page HTML, est encore un autre objet. Il s'appelle "link". etc...
Chaque chose que l'on peut voir à l'écran, ou peu s'en faut, est un objet au sens JavaScript. Nous verrons dans la suite du cours, que ces objets, ont des "Propriétés", qui leur sont attachées, et qu'on peut leur faire faire différentes choses, que nous appellerons des "Méthodes".
Nous verrons aussi que ces objets peuvent réagir à des "Evénements".
 
 



Les propriétés des objets

Comme nous l'avons vu dans l'introduction, chaque objet au sens JavaScript, possède ce que nous appellerons des "Propriétés".
Prenons un exemple : une voiture.
Si une voiture était un objet au sens JavaScript, ses propriétés pourraient être par exemple (entre autre) sa couleur, son prix, son poids, sa longueur, son nom (le modèle dans la marque : Saxo de Citroën par exemple), sa vitesse maximum, etc... Tout ce qui la caractérise d'une autre voiture.
On dira alors, que la couleur, le prix, le poids, etc.. de la voiture seront les propriétés de la voiture.
Par ailleurs, chaque propriété, possédera une valeur (value en anglais). Par exemple, la valeur de la propriété couleur de l'objet voiture pourrait être rouge, ou verte, ou grise. On dira alors que rouge, ou verte, ou grise, est la "valeur" de la propriété "couleur" de l'objet "voiture".

Toujours si une voiture était un objet au sens JavaScript, on pourrait écrire :

voiture.couleur.value

ce qui voudrait dire "rouge" dans notre exemple.
 
 
Remarquez les points qui séparent l'objet de sa propriété et de sa valeur.
On écrit voiture point couleur point value.

Les propriétés des objets en JavaScript, dépendent bien sûr de l'objet considéré. Nous le verrons au fur et à mesure.
Pour le moment, l'important est de bien comprendre ce qu'est une propriété d'un objet.

Accès aux valeurs des propriétés des objets.

a) Les valeurs en lecture seule

Les propriétés des objets sont parfois en lecture seule (on ne peut que constater la valeur de la propriété).
Par exemple, le poids de la voiture en sortie d'usine.

voiture.poids.value

On dit alors que cette propriété n'est pas modifiable. Elle a une valeur d'origine que l'on ne peut changer.
Par exemple 1 tonne. Pour accéder à la valeur de cette propriété (poids) on n'a qu'à simplement la ranger dans une variable que l'on aura inventée au paravant :

PoidsVoiture = voiture.poids.value

et la variable PoidsVoiture contiendra la valeur "1 tonne".

b) Les valeurs modifiables

Parfois, les valeurs des propriétés des objets peuvent être modifiées. Comme la couleur de la voiture (on peut la repeindre).

voiture.couleur.value

a l'origine est rouge. Pour la repeindre, on peut dire :

voiture.couleur.value = verte

et à pertir de ce moment là,

voiture.couleur.value

signifiera :  "verte"
 
 



Les méthodes des objets

Toujours au sens JavaScript, les objets possèdent des "Méthodes". C'est en quelque sorte, ce que l'objet en question est capable de faire.
Dans l'exemple de notre voiture, elle est capable d'avancer, de reculer, de tourner etc.. Nous dirons alors que avancer, reculer, tourner, sont les "Méthodes" de l'objet voiture.
Ici encore, on voit bien que les méthodes d'un objet, dépendent de l'objet considéré. Si une voiture est un objet et qu'une machine à laver est un autre objet, ils ne peuvent pas avoir tous les deux les mêmes méthodes. Avancer, reculer, seraient des méthodes bizarres pour un lave-linge. Aussi vrai que la méthode "essorer" du lave-linge serait bizarre pour une voiture.
C'est assez normal, si on considère que les "méthodes" des objets représentent ce que les objets sont capable de faire (les actions qu'ils peuvent accomplir dans un programme JavaScript).
 
 
 
 
 



Les événements auxquels réagissent les objets

Pareillement, les objets réagissent à des événements.
Pour notre voiture, un événement serait "appui sur le frein". Ce qui aurait pour effet de la faire stopper.
Ou tourner le volant, ce qui aurait pour effet de la faire tourner etc...

Il est à noter que notre exemple trouve là ses limites, dans ce sens qu'en JavaScript, on peut utiliser un même événement pour faire réagir un objet de manière tout à fait différente. Tout dépend de ce que dit le programme.
Par exemple, on pourrait fort bien imaginer qu'à un moment donné, l'événement "appui sur le frein" fasse stopper la voiture, et que plus loin dans le programme, on décide qu'en réaction à ce même événement, on fasse en sorte que "appui sur le frein" fasse klaxonner la voiture, ou la fasse tourner à droite, ou tout ce que l'on pourra imaginer.

Notons simplement, que l'important, est de savoir que chaque objet JavaScript (ou presque) sera susceptible de réagir à un ou quelques événements pré définis, mais que le résultat dépendra essentiellement de ce que l'on aura imaginé en réaction à cet événement. Nous pourrons faire faire exactement ce que l'on veut à un objet en réponse à un événement.
La seule chose, est que les objets, selon leur nature, répondront à seulement quelques événements, et pas à d'autres.
En effet, l'événement "appui sur le frein" n'aurait aucun sens pour l'objet lave-linge.
 
 



Ce cours est enseigné par Philippe Médan 
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 40 40 36 27
au CESI à l'Ecole des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX Tél. : 01 45 36 70 00
au CFA-AFIA Centre de Formation par l'Apprentissage spécialisé en Informatique DUT Licence MIAGE,
PUIO - Bâtiment 640 - Plateau du Moulon - 91405 Orsay Tél. : 01 69 15 35 19.

© Philippe Médan 1999-2007. Tous droits de reproduction réservés pour tous pays.